Comments (10)
Which version of unrpyc did you try? And could you attach the file .../name_of_your_game/renpy/script.py
?
from unrpyc.
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.
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.
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.
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!
Whoops, that's a bug on our side
That's at least something productive from this "thing".
from unrpyc.
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.
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.
Lmao they replaced all occurrences of
rpyc
in the file withlidl_discount
and minified it. You can try replacing the function nameread_rpyc_data
inun.rpy
withread_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.
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.
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)
- Camera statement possibly broken in dev HOT 5
- Tracking issue for removal of ren'py 6/7 backwards compatibility in the ren'py 8 / python 3 move. HOT 24
- Legacy-backports HOT 4
- Dev_py3: Possible missing colons in decompiled v8.2 files HOT 5
- Check for manipulated header fails sometimes HOT 7
- AttributeError: 'RawBlock' object has no attribute 'statements' HOT 12
- AttributeError: 'module' object has no attribute '_loads' with Ren'Py 6.99.12.4.2187 HOT 5
- Instaliation issues HOT 6
- Translate feature is in both unrpyc branches error prone implemented HOT 17
- Sugar syntax error in the SL2 decompiler HOT 7
- Interleaved output when multiprocessing is used. HOT 2
- Python string RegEx does not match multiline strings HOT 3
- Failed decompile script 'options.rpyс' from renpy 6.11.2 HOT 11
- How to unrpyc a single file during runtime in a rpy file HOT 13
- Missing guards after argparse for bad arg combinations HOT 1
- Safepickler in Py3 possibly broken HOT 10
- Sometimes "elif True" if generated HOT 3
- ModuleNotFoundError: No module named 'renpy' HOT 4
- After decompiled .rpy files, the game crashed. HOT 10
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unrpyc.