The VG Resource

Full Version: Love Nikki Encrypted Image Files
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi all! For the past year and a half, I've been ripping sprites from the 2D dress-up game Love Nikki, using Nox and NinjaRipper. However, as the game has tens of thousands of image files, that method is very tedious.

Unfortunately, it is currently my only method because although I can access the files marked as PNG and JPGs, and I'm able to file swap them with real images and have them load in game, they lack headers and appear to be encrypted or obfuscated in some way.

From what I can see opening them in a hex editor, they also don't seem to have the structure of a proper PNG or JPG file either. Unfortunately, I have very little understanding of decryption, so I'm at a roadblock.

So now I'm going to ask here, if anyone is capable of helping me, it would be so very much appreciated. 

I've attached some examples of the encrypted image files; one is what should be a 128px by 151px PNG file of a face, the other should be a 1625px by 1788px JPG of a background. [attachment=9702]

Thank you!
(06-24-2019, 01:11 AM)CorruptTurret Wrote: [ -> ]They're all encrypted with Blowfish using an (effectively) constant key / mode / initial state.

Here's a java program to recursively extract encrypted files in whatever input folder (JRE 1.8 or above needed)
http://dnrv2.cyriaca.net/projects/hate3/jar/Hate3.jar
You run it in a terminal with "java -jar Hate3.jar <input folder> <output folder> <key>"
Source (just cuz)
https://github.com/veronicakulikova/play...Hate3.java

You'll need to use this key
fd1c1b2f34a0d1d246be3ba9bc5af022e83375f315a0216085d3013a

Aaahhhhhhhh thank you so much!!! It worked T^T You're a lifesaver!!

(For anyone else reading this who's not super well versed in Java like me, if you encounter an "illegal key size or default parameters", you gotta check out this guide.)

I'm gonna get right to compiling the sprite sheets for this then! Thank you again!!!
(06-24-2019, 02:27 PM)lapistier Wrote: [ -> ]
(06-24-2019, 01:11 AM)CorruptTurret Wrote: [ -> ]They're all encrypted with Blowfish using an (effectively) constant key / mode / initial state.

Here's a java program to recursively extract encrypted files in whatever input folder (JRE 1.8 or above needed)
http://dnrv2.cyriaca.net/projects/hate3/jar/Hate3.jar
You run it in a terminal with "java -jar Hate3.jar <input folder> <output folder> <key>"
Source (just cuz)
https://github.com/veronicakulikova/play...Hate3.java

You'll need to use this key
fd1c1b2f34a0d1d246be3ba9bc5af022e83375f315a0216085d3013a

Aaahhhhhhhh thank you so much!!! It worked T^T You're a lifesaver!!

(For anyone else reading this who's not super well versed in Java like me, if you encounter an "illegal key size or default parameters", you gotta check out this guide.)

I'm gonna get right to compiling the sprite sheets for this then! Thank you again!!!

This is incredible! I know this is old but it WORKS and ive been wanting this forever
Big Grin
(02-04-2021, 12:37 PM)thebutthutt Wrote: [ -> ]
(06-24-2019, 02:27 PM)lapistier Wrote: [ -> ]
(06-24-2019, 01:11 AM)CorruptTurret Wrote: [ -> ]They're all encrypted with Blowfish using an (effectively) constant key / mode / initial state.

Here's a java program to recursively extract encrypted files in whatever input folder (JRE 1.8 or above needed)
http://dnrv2.cyriaca.net/projects/hate3/jar/Hate3.jar
You run it in a terminal with "java -jar Hate3.jar <input folder> <output folder> <key>"
Source (just cuz)
https://github.com/veronicakulikova/play...Hate3.java

You'll need to use this key
fd1c1b2f34a0d1d246be3ba9bc5af022e83375f315a0216085d3013a

Aaahhhhhhhh thank you so much!!! It worked T^T You're a lifesaver!!

(For anyone else reading this who's not super well versed in Java like me, if you encounter an "illegal key size or default parameters", you gotta check out this guide.)

I'm gonna get right to compiling the sprite sheets for this then! Thank you again!!!

This is incredible! I know this is old but it WORKS and ive been wanting this forever
Big Grin

Hi, sorry, how did you got this to work? The first link is broken Sad I need the hate3.jar to work.
(06-24-2019, 02:27 PM)lapistier Wrote: [ -> ]
(06-24-2019, 01:11 AM)CorruptTurret Wrote: [ -> ]They're all encrypted with Blowfish using an (effectively) constant key / mode / initial state.

Here's a java program to recursively extract encrypted files in whatever input folder (JRE 1.8 or above needed)
http://dnrv2.cyriaca.net/projects/hate3/jar/Hate3.jar
You run it in a terminal with "java -jar Hate3.jar <input folder> <output folder> <key>"
Source (just cuz)
https://github.com/veronicakulikova/play...Hate3.java

You'll need to use this key
fd1c1b2f34a0d1d246be3ba9bc5af022e83375f315a0216085d3013a

Aaahhhhhhhh thank you so much!!! It worked T^T You're a lifesaver!!

(For anyone else reading this who's not super well versed in Java like me, if you encounter an "illegal key size or default parameters", you gotta check out this guide.)

I'm gonna get right to compiling the sprite sheets for this then! Thank you again!!!
Hi! Do you still have the file Hate3.Jav? I really want to run this decoder but don't have the jav file: ((
Hi! I'm so sorry I haven't checked this account in ages, if you're still interested you can find the program here! https://nettokun.github.io/nikdump/
CorruptTurret's JAR file can be downloaded here:

https://www.mediafire.com/file/ek7pqstm3...3.jar/file

Its source code is here:

https://pastebin.com/xTQRQcrQ

Also, user aluigi on ZenHax provided this script for use with QuickBMS:

Code:
goto -8
savepos SIZE
getdstring DUMMY 4  # "droi"
get NUM byte
getdstring EXT 3

encryption bf_cbc "fd1c1b2f34a0d1d246be3ba9bc5af022e83375f315a0216085d3013a"
xmath XSIZE "SIZE - NUM"

get NAME filename
log NAME 0 XSIZE 0 SIZE