Tool Ren'Py UnRenGUI, UnRen-forall(v9.4), UnRen-Powershell-forall(v9.4), UnRen-old

5.00 star(s) 3 Votes

cooperdk

Engaged Member
Jul 23, 2017
3,377
4,941
One of main reasons is to avoid unauthorized code mods, as i already have my hands full with json modding support.
Plus some stuff there is used in other games, including commercial, so i would rather keep code hidden.

Generally, if person able to reverse it, they are able to write such code themselves. And if they want to learn/steal, well, they wouldn't be able to reverse.
Technically it is automatic 3kb python script what adds quite simple protection. rpyc files are valid, no dirty tricks like buffer overflows/invalid data relying on specific renpy version.
Not really a proper hackme/crackme challenge, but still it's fun to see how people poke it, maybe will add new layer or two next update :D
Well, as you mention, you provide a modding framework so not much is really needed with the code, just curious. Still, there's not much point in protecting code at that early stage.

Also, modification might need other stuff than json and images to work. Until you provide with a programmatic framework, not much is gonna happen in that sense (fx, extension of already available stuff).

We talked about new gynoids in your game thread btw. I am working a bit on some ideas.
 

giqui

Conversation Conqueror
Game Compressor
Nov 9, 2019
6,245
43,308
Why can't I extract the .rpa files? I'm using UnRen-0.91.bat

https://f95zone.to/threads/the-hard-way-v0-1-3-public-muffin-maker.74065/post-7428582

TheHardWayFree-0.10.4Free-pc.zip

----------------------------------------------------

Creating rpatool...

Searching for RPA packages
+ Unpacking "archive.rpa" - 606279437 bytes
Traceback (most recent call last):
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 363, in <module>
archive = RenPyArchive(archive, padlength=padding, key=key, version=version, verbose=arguments.verbose)
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 65, in __init__
self.load(file)
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 229, in load
self.version = self.get_version()
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 87, in get_version
raise ValueError('the given file is not a valid Ren\'Py archive, or an unsupported version')
ValueError: the given file is not a valid Ren'Py archive, or an unsupported version

Cleaning up temporary files...

----------------------------------------------------

Finished!

:unsure: :(
 

micmitja

Forum Fanatic
Aug 6, 2017
5,589
5,842
Why can't I extract the .rpa files? I'm using UnRen-0.91.bat

https://f95zone.to/threads/the-hard-way-v0-1-3-public-muffin-maker.74065/post-7428582

TheHardWayFree-0.10.4Free-pc.zip

----------------------------------------------------

Creating rpatool...

Searching for RPA packages
+ Unpacking "archive.rpa" - 606279437 bytes
Traceback (most recent call last):
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 363, in <module>
archive = RenPyArchive(archive, padlength=padding, key=key, version=version, verbose=arguments.verbose)
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 65, in __init__
self.load(file)
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 229, in load
self.version = self.get_version()
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 87, in get_version
raise ValueError('the given file is not a valid Ren\'Py archive, or an unsupported version')
ValueError: the given file is not a valid Ren'Py archive, or an unsupported version

Cleaning up temporary files...

----------------------------------------------------

Finished!

:unsure: :(
if you are using 091 version , cause its old and dont work with all the games anymore
at least you are on right thread, now go to page one, and grab the updated ones, there are 2 old and new
and read instructions which to use where.
 
  • Like
Reactions: giqui

Radnor

Member
Game Developer
Nov 9, 2021
365
941
Well, as you mention, you provide a modding framework so not much is really needed with the code, just curious. Still, there's not much point in protecting code at that early stage.

Also, modification might need other stuff than json and images to work. Until you provide with a programmatic framework, not much is gonna happen in that sense (fx, extension of already available stuff).

We talked about new gynoids in your game thread btw. I am working a bit on some ideas.
Another major reason is i find it entertaining to test if this or that protection will stop people and for how long :D

As for opening code to modders, it will happen eventually, once i'm sure game core is stable enough. So protection is very simple, just to deter random lurkers. Wouldn't stop anyone determined.

Anyway, this is really off-topic for this thread, so if you have questions/notes about game it is better to move discussion to game thread, discord or dm.
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
One of main reasons is to avoid unauthorized code mods, as i already have my hands full with json modding support.
Plus some stuff there is used in other games, including commercial, so i would rather keep code hidden.

Generally, if person able to reverse it, they are able to write such code themselves. And if they want to learn/steal, well, they wouldn't be able to reverse.
Technically it is automatic 3kb python script what adds quite simple protection. rpyc files are valid, no dirty tricks like buffer overflows/invalid data relying on specific renpy version.
Not really a proper hackme/crackme challenge, but still it's fun to see how people poke it, maybe will add new layer or two next update :D
Very interesting. Commercial code - your personal code from other commercial projects? :unsure: :)
 

Radnor

Member
Game Developer
Nov 9, 2021
365
941
Very interesting. Commercial code - your personal code from other commercial projects? :unsure: :)
Yes, all code is mine, nothing amazing there.
Just to clarify, i meant some of code in my game is my reused code i did for other people's games. While it is not under NDA or anything, still i don't think it is nice to freely share it as is. Hence is simple rpyc protection. Once game is more or less stable, i will clean things up and probably will open source it some day.
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
Yes, all code is mine, nothing amazing there.
Just to clarify, i meant some of code in my game is my reused code i did for other people's games. While it is not under NDA or anything, still i don't think it is nice to freely share it as is. Hence is simple rpyc protection. Once game is more or less stable, i will clean things up and probably will open source it some day.
I was just wondering, I thought there was really proprietary code that is used in some commercial project. The power of the code in this game is disproportionately large in relation to the content.:BootyTime:
 
  • Haha
Reactions: Radnor

Radnor

Member
Game Developer
Nov 9, 2021
365
941
I was just wondering, I thought there was really proprietary code that is used in some commercial project. The power of the code in this game is disproportionately large in relation to the content.:BootyTime:
True, content is lacking at the moment.
I guess i also use this game as some sort of field experiment. Testing new techniques, methods, RenPy obscure features, how to combine my old code into something new, how to improve it to be more flexible and robust etc.
Already learned something new about RenPy internals and some stuff on web/android, plus fixed some of my own bugs.
 

Boehser Onkel

Forum Fanatic
Modder
Feb 20, 2021
4,088
6,034
Why can't I extract the .rpa files? I'm using UnRen-0.91.bat

https://f95zone.to/threads/the-hard-way-v0-1-3-public-muffin-maker.74065/post-7428582

TheHardWayFree-0.10.4Free-pc.zip

----------------------------------------------------

Creating rpatool...

Searching for RPA packages
+ Unpacking "archive.rpa" - 606279437 bytes
Traceback (most recent call last):
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 363, in <module>
archive = RenPyArchive(archive, padlength=padding, key=key, version=version, verbose=arguments.verbose)
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 65, in __init__
self.load(file)
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 229, in load
self.version = self.get_version()
File "C:\games\TheHardWayFree-0.10.4Free-pc\game\_rpatool.py", line 87, in get_version
raise ValueError('the given file is not a valid Ren\'Py archive, or an unsupported version')
ValueError: the given file is not a valid Ren'Py archive, or an unsupported version

Cleaning up temporary files...

----------------------------------------------------

Finished!

:unsure: :(
use depack12 https://f95zone.to/threads/unren-ba...sole-developer-menu-enabler.3083/post-6462248
and unren after

the dev tried to protect the game from modding/unpacking (specially the urm mod)
epic failure with a messed up code which was breaking the game :ROFLMAO:
 
Last edited:
  • Like
Reactions: giqui

ArcFlight

Newbie
Aug 10, 2017
28
66
Accidentally used the wrong version. Would probably be a good idea to check rpatool's return code before continuing to delete the archive. Luckily, I forgot to delete the download and didn't have to re-download anything.

Code:
  Remove RPA archives after extraction?
    Enter (y/n): y
  + RPA archives will be deleted

  Searching for RPA packages
   + Unpacking "archive.rpa" - 28924857 bytes
Traceback (most recent call last):
  File "A:\Random\Path\rpatool.py", line 12, in <module>
    import renpy.util
ImportError: No module named util
      + Delete "archive.rpa"
Despite that, thanks for continuing to maintain this!
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
Accidentally used the wrong version. Would probably be a good idea to check rpatool's return code before continuing to delete the archive. Luckily, I forgot to delete the download and didn't have to re-download anything.

Code:
  Remove RPA archives after extraction?
    Enter (y/n): y
  + RPA archives will be deleted

  Searching for RPA packages
   + Unpacking "archive.rpa" - 28924857 bytes
Traceback (most recent call last):
  File "A:\Random\Path\rpatool.py", line 12, in <module>
    import renpy.util
ImportError: No module named util
      + Delete "archive.rpa"
Despite that, thanks for continuing to maintain this!
I tried to solve this problem quickly, but it didn't work out. I'll see what I can do when I have more time. (y) Still, this is not a critical problem.
 
  • Like
Reactions: Boehser Onkel

KenneX

Member
Apr 21, 2019
267
348
I'm on Windows 7 (administrator) and I can't unpack images from .rpa in RenPy 7.4+, it works without a problem up to 7.3. Can someone help?
UnRen-v.0.11-newv4:
UnRen-v.0.11-newv4.jpg
UnRen-v.0.11-oldv2 and Unren0.91:
UnRen-v.0.11-oldv2.jpg
depack12:
I'm sorry, but an uncaught exception occurred.

While running game code:
File "game/depack12.rpy", line 12, in script
init -9000 python:
File "game/depack12.rpy", line 12, in script
init -9000 python:
File "game/depack12.rpy", line 44, in <module>
new = __builtin__.open(new_path, "wb")
IOError: [Errno 13] Permission denied: u'D:\\uTorrent\\zzzz\\Mesmerized-0.4.1-pc\\unpacked\\game\\gui/bar/bottom.png'

-- Full Traceback ------------------------------------------------------------

Full traceback:
File "renpy/bootstrap.py", line 331, in bootstrap
renpy.main.main()
File "renpy/main.py", line 560, in main
renpy.game.context().run(node)
File "game/depack12.rpy", line 12, in script
init -9000 python:
File "game/depack12.rpy", line 12, in script
init -9000 python:
File "renpy/ast.py", line 928, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "renpy/python.py", line 2245, in py_exec_bytecode
exec(bytecode, globals, locals)
File "game/depack12.rpy", line 44, in <module>
new = __builtin__.open(new_path, "wb")
IOError: [Errno 13] Permission denied: u'D:\\uTorrent\\zzzz\\Mesmerized-0.4.1-pc\\unpacked\\game\\gui/bar/bottom.png'

Windows-7-6.1.7601-SP1
Ren'Py 7.4.11.2266
0.4.1
Thu Feb 3 02:02:41 2022
 

LecherousFox

New Member
Dec 9, 2020
12
6
Thank you very much for the tools you provided. I encountered two problems.

The first is the console unren, which cannot unpack the RPA file with modified header information.

Python:
  Searching for RPA packages
   + Unpacking  "assets.rpa" - 32185157 bytes
Traceback (most recent call last):
  File "D:\GA\rivalgame-1.07-dists\rivalgame-1.07-win\rivalgame-1.07-win\rpatool.py", line 12, in <module>
    import renpy.util
ImportError: No module named util
      + Delete "assets.rpa"
   +Unpacking  "scripts.rpa" - 1012846 bytes
Traceback (most recent call last):
  File "D:\GA\rivalgame-1.07-dists\rivalgame-1.07-win\rivalgame-1.07-win\rpatool.py", line 12, in <module>
    import renpy.util
ImportError: No module named util
      + Delete "scripts.rpa"

  Cleaning up temporary files...

Then there is pyqt unren. After I use pyinstaller to package it as exe, a bug occurs, which seems to lack the "future" module. This must not be a problem with your code, but if you can, can you tell me how you package it?

Python:
C:\Users\WF\Desktop\UnRen v.0.11v4 GUI\dist\UnRen>"C:\Users\WF\Desktop\UnRen v.0.11v4 GUI\dist\UnRen\UnRen.exe"
Traceback (most recent call last):
  File "UnRen.py", line 154, in executeCommand
  File "UnRen.py", line 172, in executeThread
  File "D:\GA/rivalgame-1.07-dists/pp/rivalgame-1.07-win\renpy\__init__.py", line 56, in <module>
    from renpy.compat import *
  File "D:\GA/rivalgame-1.07-dists/pp/rivalgame-1.07-win\renpy\compat\__init__.py", line 59, in <module>
    import future.standard_library
ModuleNotFoundError: No module named 'future'

C:\Users\WF\Desktop\UnRen v.0.11v4 GUI\dist\UnRen>
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
Thank you very much for the tools you provided. I encountered two problems.

The first is the console unren, which cannot unpack the RPA file with modified header information.

Python:
  Searching for RPA packages
   + Unpacking  "assets.rpa" - 32185157 bytes
Traceback (most recent call last):
  File "D:\GA\rivalgame-1.07-dists\rivalgame-1.07-win\rivalgame-1.07-win\rpatool.py", line 12, in <module>
    import renpy.util
ImportError: No module named util
      + Delete "assets.rpa"
   +Unpacking  "scripts.rpa" - 1012846 bytes
Traceback (most recent call last):
  File "D:\GA\rivalgame-1.07-dists\rivalgame-1.07-win\rivalgame-1.07-win\rpatool.py", line 12, in <module>
    import renpy.util
ImportError: No module named util
      + Delete "scripts.rpa"

  Cleaning up temporary files...

Then there is pyqt unren. After I use pyinstaller to package it as exe, a bug occurs, which seems to lack the "future" module. This must not be a problem with your code, but if you can, can you tell me how you package it?

Python:
C:\Users\WF\Desktop\UnRen v.0.11v4 GUI\dist\UnRen>"C:\Users\WF\Desktop\UnRen v.0.11v4 GUI\dist\UnRen\UnRen.exe"
Traceback (most recent call last):
  File "UnRen.py", line 154, in executeCommand
  File "UnRen.py", line 172, in executeThread
  File "D:\GA/rivalgame-1.07-dists/pp/rivalgame-1.07-win\renpy\__init__.py", line 56, in <module>
    from renpy.compat import *
  File "D:\GA/rivalgame-1.07-dists/pp/rivalgame-1.07-win\renpy\compat\__init__.py", line 59, in <module>
    import future.standard_library
ModuleNotFoundError: No module named 'future'

C:\Users\WF\Desktop\UnRen v.0.11v4 GUI\dist\UnRen>
Regarding the first error, I think the wrong version of the tool was used. As I recently found out, it turns out that the tool marked "new" is not supported by at least version 7.4.6, but due to the distraction to other problems and tasks, I forgot to clarify this information in the instructions, which I'm going to fix now. As for the second part, I haven't packed this version of the tool into an executable file for a long time. Moreover, I myself did not write any lines with the future module. Most likely, python itself (or even PyCharm) added these lines. I suggest removing them and trying to reassemble everything. Apart from PyQt, I don't seem to have used any other additional libraries. :unsure:
 

SkepSyS

Member
Oct 2, 2020
124
153
I am trying to unren 3 rpa files and none of these programs work... am I doing something wrong? I am pretty sure its renpy 7.3.5 the version. I have attached one of files... can someone tell me if they manage to unarchive it!
 

VepsrP

Well-Known Member
Modder
Dec 13, 2017
1,387
1,367
I am trying to unren 3 rpa files and none of these programs work... am I doing something wrong? I am pretty sure its renpy 7.3.5 the version. I have attached one of files... can someone tell me if they manage to unarchive it!
I need the name of the game itself, one archive is not enough to solve the issue, although I roughly understand what the problem is.
 
5.00 star(s) 3 Votes