Code Monkey home page Code Monkey logo

Comments (10)

madeddy avatar madeddy commented on August 9, 2024

Which version of unrpyc did you try? And could you attach the file .../name_of_your_game/renpy/script.py ?

from unrpyc.

CensoredUsername avatar CensoredUsername commented on August 9, 2024

I tried putting the files un.rpy and un.rpyc in the "game" folder and i get the same error for both of them.
(sorry if this is already solved, I went throught the 150 solved problems and I didn't find anything similar)

No worries, thanks for the detailed bug report. I think you're dealing with a modified ren'py engine that has renamed that function to something different, because it ought to exist in ren'py 8.0.3. Could you try using unrpyc on the command line?

from unrpyc.

walterrr7 avatar walterrr7 commented on August 9, 2024

Which version of unrpyc did you try? And could you attach the file .../name_of_your_game/renpy/script.py ?

I tried with both unrpyc 2.0.0 and 2.0.1
(file requested : script.zip)

No worries, thanks for the detailed bug report. I think you're dealing with a modified ren'py engine that has renamed that function to something different, because it ought to exist in ren'py 8.0.3. Could you try using unrpyc on the command line?

I just tried with the command line and it doesn't work either, I'm getting these errors :

When I run the command on a file :
Exception: Did not find a zlib compressed blob where it was expected. Either the header has been modified or the file structure has been changed

When I add "--try-harder" :
TypeError: ord() expected string of length 1, but int found

from unrpyc.

CensoredUsername avatar CensoredUsername commented on August 9, 2024

I tried with both unrpyc 2.0.0 and 2.0.1
(file requested : script.zip)

Lmao they replaced all occurrences of rpyc in the file with lidl_discount and minified it. You can try replacing the function name read_rpyc_data in un.rpy with read_lidl_discount_data and it should likely work. Confusing that they then still shipped the python source file instead of just bytecode like ren'py games normally do.

When I run the command on a file :
Exception: Did not find a zlib compressed blob where it was expected. Either the header has been modified or the file structure has been changed

So they changed the file header as well. Seems like have implemented basic anti-unrpyc techniques. From what I saw --try-harder won't counter this one. They did a little bit more than just change the header.

When I add "--try-harder" :

Whoops, that's a bug on our side that happened during the python 3 transition. Thanks for letting me know.

Thanks for the bug report, looks like this isn't really an issue with unrpyc though, just a modified engine. I think you should be able to handle it from here, so I'll close this.

from unrpyc.

madeddy avatar madeddy commented on August 9, 2024

OMG!
I got a feeling and that's why i wanted to see the script.py. It's a massacre. Someone likes our german market, huh? 😁

And i think it broke my linter. Never see anything like this: "1045 problems" LOL, craaazy!

Screenshot_20240403_223813

Whoops, that's a bug on our side

That's at least something productive from this "thing".

from unrpyc.

CensoredUsername avatar CensoredUsername commented on August 9, 2024

And i think it broke my linter. Never see anything like this: "1045 problems" LOL, craaazy

haha that's minification for you. I do the same thing to create un.rpyc

from unrpyc.

madeddy avatar madeddy commented on August 9, 2024

Ok, that explains this part.
But all the other "hide and seek" changes? This "code" must be worth millions...to hide it like this. 🤣

from unrpyc.

walterrr7 avatar walterrr7 commented on August 9, 2024

Lmao they replaced all occurrences of rpyc in the file with lidl_discount and minified it. You can try replacing the function name read_rpyc_data in un.rpy with read_lidl_discount_data and it should likely work. Confusing that they then still shipped the python source file instead of just bytecode like ren'py games normally do.

THANKS! this worked for me

from unrpyc.

CensoredUsername avatar CensoredUsername commented on August 9, 2024

But all the other "hide and seek" changes? This "code" must be worth millions...to hide it like this. 🤣

Nah.

People make these changes because they want to raise the barrier to modification, or redistribution, just a little bit. It'd surprise me if they spent more than an hour on this. It wouldn't be a problem to anyone with the technical skills to produce a high quality mod to break through this. Hell even someone with only a little bit of programming experience could likely figure this one out with a bit of time.

But it stops people whose interest in it doesn't go further than wanting to show people "yo omg I cracked this game" with the barest amount of effort.

Which is why, although I really like the challenge of breaking these kind of systems, I usually don't support people who ask for help with it past pointing out that they changed something. Especially if it's some terrible bug report that just summarizes to "does not work pls fix for me". I feel like, if someone spent time on making it slightly harder to get into something, you should at least be willing to put in some effort yourself to get past that as well.

Which is also why unrpyc doesn't just rip games automatically. I like it as a tool to be used when investigating things, and to enable skilled modding. It would've been really easy to make un.rpyc and friends just rip all assets automatically, or have the command line tool unarchive everything as well. But they don't, because this is a ren'py script decompiler, and not a game ripping tool. I'd like people to have to learn at least a bit about the thing they want to do.

from unrpyc.

madeddy avatar madeddy commented on August 9, 2024

I think we are "basically" on the same page.

People make these changes because they want to raise the barrier to modification, or redistribution, just a little bit.

I understand this and nothing against, but find it a bit funny if its "a bit" much. Especially if it looks like it was some work for them. But not to misunderstand this, as i enjoy looking with what ideas people come up and how it works. e.g. our case here where, as you said, they did

  • the header
  • minimze
  • code refactoring/renaming
  • and some cipher method called YVANeusEX (I've seen this elsewhere already)
    Maybe there is more. Quit applaudable such effort and fantasy. LIDL my ass. 🥲

...some terrible bug report that just summarizes to "does not work pls fix for me".

Oh yeah. I think we and a lot other people have seen our share of this behavior. Nothing to add.

I feel like, if someone spent time on making it slightly harder to get into something, you should at least be willing to put in some effort yourself to get past that as well.
Which is also why unrpyc doesn't just rip games automatically. I like it as a tool to be used when investigating things, and to enable skilled modding.

I fully sign this. 👍🏻

from unrpyc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.