asmodean's reverse engineering page |
|
2010/02/06 / exkifint updated |
|
2010/02/01 / miscmja updated / exdebopak updated |
|
2010/01/31 / exrlarc Maybe somebody felt things were too obvious last time, since they switched to using an ISAAC PRNG. Try harder guys. :) exrlarc_nosrc.zip Contents: // exscharc.cpp, v1.1 2010/01/31 // This tool extracts data from ARC archives used by Trample on Schatten!! // and other games. Compile with -DRUNELORD for Rune Lord variation. // cpb2bmp_rl.cpp, v1.0 2010/01/31 // This tool converts TYP1 (*.cpb) images used by Rune Lord.Known to work with: 2010/01/29 CLOCKUP team DYO 「ルーンロオド」 *.arc (sig=none) |
|
2010/01/30 / exmpf2 exmpf2.zip Contents: // exmpf2.cpp, v1.0 2010/01/30 // This tool extracts MPF2 (*.dat+*.a01 etc) archives.Known to work with: 2010/01/29 APRICOT 「ゆにばる! PARANORMAL GIRLS STRIKE!!」 *.dat+*.a01 (sig=MPF2) |
|
2010/01/29 / decrbrads updated |
|
2010/01/24 / miscmja updated |
|
2009/12/30 / exdieslib updated |
|
2009/12/26 / exihkcap updated |
|
2009/12/26 / exns2 Use decrkansa to decrypt 00.ns2 before extracting with this tool. exns2.zip Contents: // exns2.cpp, v1.0 2009/12/26 // This tool extracts *.ns2 archives. Use decrkansa first for encrypted // archives.Known to work with: 2009/12/25 Liquid-Touchable 「秘蹟神姫アルカナセイバー」 *.ns2 (sig=none) |
|
2009/12/26 / decrkansa updated |
|
2009/12/24 / exszs exszs.zip Contents: // exszs.cpp, v1.0 2009/12/24 // This tool extracts SZS100 (*.szs) archives.Known to work with: 2009/12/18 げーせん18 「出撃!!乙女たちの戦場 〜闇を切り裂く、にび色の徹甲弾〜」 *.szs (sig=SZS100) |
|
2009/12/21 / exmnvdat updated |
|
2009/12/20 / exlfa This might work with some older Leaf games, but I haven't tried it. Let me know? exlfa.zip Contents: // exlfa.cpp, v1.0 2009/12/20 // This tool extracts Leaf's *.a archives.Known to work with: 2009/12/18 Leaf 「Princess Collection」 *.a (sig=0x1EAF) |
|
2009/12/20 / exlac updated |
|
2009/12/19 / exlfar21 I'm already tired of having to reassemble chopped up textures like this ... but at least the game has very nice character art so it was worth the trouble. exlfar21.zip Contents: // exlfar21.cpp, v1.0 2009/12/19 // This tool extracts ar21 (*.ar2) archives. // fixlfpng.cpp, v1.0 2009/12/19 // This tool reassembles two types of fragmented image textures used by Leaf. // exlfpim.cpp, v1.0 2009/12/19 // This tool extracts *.pim archives.Known to work with: 2009/12/18 Leaf 「Final Dragon Chronicle -Guilty Requiem-」 *.ar2 (sig=ar21) |
|
2009/12/18 / gyu2bmp updated / miscmja updated |
|
2009/12/12 / exbelarc Maybe next time they'll use 32-bit PNGs instead of junky masks. Note that v2 is for しろくまベルスターズ♪. I expect v1 to work on a lot of older games but I haven't tried it. exbelarc.zip Contents: // exbelarc.cpp, v1.0 2009/12/12 // This tool extracts data from *.arc archives used by しろくまベルスターズ♪. // Compile with -DARC_VERSION=1 for older games.Known to work with: 2009/12/11 PULLTOP 「しろくまベルスターズ♪」 *.arc; none (sig=none; WIPF) |
|
2009/12/05 / exdpmx exdpmx.zip Contents: // exdpmx.cpp, v1.1 2009/12/05 // This tool extracts data from DPMX (*.dpm) archives.Known to work with: 2006/12/22 inspire 「femme fatale」 2009/12/04 PHAM! 「えろドラ!」 *.bin (sig=DPMX) *.dpm (sig=DPMX) |
|
2009/12/04 / expdfpk expdfpk.zip Contents: // expdfpk.cpp, v1.0 2009/12/04 // This tool extracts data from FPK 0100 (*.fpk) archives used in Pretty Devil.Known to work with: 2009/08/28 祭企画 「女子○2」 2009/11/27 ビタミン 「PrettyDevilパラダイス〜ミリオム魔界奪還指令!〜」 2009/11/27 ビタミン 「PrettyDevilミリオムおまけ劇場」 *.fpk; *.fbx (sig=FPK 0100; FBX) |
|
2009/11/30 / miscmja updated |
|
2009/11/29 / exkiss6dat exkiss6dat.zip Contents: // exkiss6dat.cpp, v1.0 2009/11/29 // This tool extracts CAPYBARA DAT 001 (*.DAT) archives.Known to work with: 2009/11/27 WINTERS 「KISS×600 管理人さんのポニーテール」 *.DAT (sig=CAPYBARA DAT 001) |
|
2009/11/28 / exgr2 This is a really old archive format ... now with some basic RLE compression. exgr2.zip Contents: // exgr2.cpp, v1.0 2009/11/28 // This tool extracts PACK (*.GR2) archvies.Known to work with: 2000/08/04 U・Me SOFT 「微笑みをもういちど」 2003/07/04 GLOBE 「さよならまゆみちゃん〜藤ノ森病院物語〜」 2004/03/05 青梅製作所 「狂乱〜狂った性活〜」 2009/11/27 CROSSOVER 「美乳淫妹 遥」 *.GR2; *.GR2 (sig=PACK; GR2_) |
|
2009/11/28 / exbelldat updated |
|
2009/11/27 / extcd3 updated / exkifint updated / exchpac updated |
|
2009/11/20 / exkoigdat This may be the the most retarded data obfuscation I've seen. It copies data from the end of the movies to the front, actually modifying them on disk temporarily to play them back... exkoigdat.zip Contents: // exkoigdat.cpp, v1.0 2009/11/20 // This tool extracts data from 恋衣 〜まずはコレ着て!〜Known to work with: 2009/11/20 Catear 「恋衣 〜まずはコレ着て!〜」 *.DAT (sig=none) |
|
2009/11/18 / exkkesui Low resolution 640x480 PS2 graphics are pretty lame these days but since somebody asked me to look at this... exkkesui.zip Contents: // exkkesui.cpp, v1.0 2009/11/18 // This tool extracts data from かのこん えすいー.Known to work with: 2008/07/31 5pb. 「かのこん えすいー (PS2)」 *.DAT (sig=none) |
|
2009/11/17 / exlnk4 This was irritating dealing with the block/delta image format, especially having to do so three different ways. Still, it's something I haven't seen before and was a bit interesting. The floating-point version I suspect is reassembled on the GPU, maybe in a pixel shader? Usage of the merge tools is unusually complicated. The first parameter is the bitmap and the next is the delta data file (no extension). Passing auto where supported will guess paired filenames; it's usually right. - merge_5bpfrag works with STEINS;GATE. - merge_11ecfrag works with deltas in 11eyes CrossOver's chara.dat. Extracting everything will consume a *lot* of space. - merge_11ecfrag2 works with deltas in 11eyes CrossOver's bg.dat. Note there are two bitmaps each for this one. exlnk4.zip Contents: // exlnk4.cpp, v1.0 2009/04/09 // This tool extracts LNK4 (*.dat) archives. // merge_5pbfrag.cpp, v1.0 2009/11/14 // This tool merges tiled fragments used by 5pb on the Xbox 360. // merge_11ecfrag.cpp, v1.0 2009/11/15 // This tool merges tiled fragments used by 11eyes CrossOver (chara) // merge_11ecfrag2.cpp, v1.0 2009/11/16 // This tool merges tiled fragments used by 11eyes CrossOver (bg). // Input is two bitmaps and a descriptor file.Known to work with: 2009/04/02 5pb./Lass 「11eyes CrossOver (XBOX360)」 2009/10/15 5pb./Nitro+ 「STEINS;GATE (XBOX360)」 *.dat; * (sig=LNK4; none) |
|
2009/10/31 / exanepak The TOC changed to using 64-bit offsets; apparently 2GB is not enough for these guys. :) The 32-bit offset version (v1) probably works with a lot of old games but I haven't tried it. exanepak.zip Contents: // exanepak.cpp, v1.0 2009/10/31 // This tool extracts obfuscated CGPACK.idx/pak archives from OLE-M.Known to work with: 2009/10/30 OLE-M 「このままじゃ姉とSEXしてしまう!? あれ、弟よ、いま中でださなかった?」 CGPACK.idx+CGPACK.pak; *.gr (sig=none; none) |
|
2009/10/31 / exmaspaz The *.dat archives in ましろ色シンフォニー are standard paz archives despite the clever(?) disguise. Note that this tool can also rebuild archives for anybody who might care. exmaspaz.zip Contents: // exmaspaz.cpp, v1.24 2009/10/31 // This tool extracts and rebuilds data from *.paz archivesKnown to work with: 2009/10/30 ぱれっと 「ましろ色シンフォニー」 *.dat (sig=none) |
|
2009/10/30 / exnllpk updated / exyox updated / exnpa updated |
|
2009/10/23 / exnllpk updated / miscmja updated / excdt updated |
|
2009/10/09 / extricgf updated |
|
2009/09/30 / exdieslib updated |
|
2009/09/25 / extropak The version I posted earlier didn't deal with obfuscated data since I only looked at the character art. :) Updated 1.02: now unobfuscates *.hse data. extropak.zip Contents: // extropak.cpp, v1.02 2009/09/25 // This tool extracts PACK (*.pak) archives used by トロピカルKISS.Known to work with: 2006/10/27 BLACKRAINBOW 「相姦遊戯」 2009/09/25 Twinkle 「トロピカルKISS」 *.pak; *.hse (sig=PACK; none) |
|
2009/09/25 / exfp3 updated |
|
2009/09/20 / exef2paz updated |
|
2009/09/18 / miscmja updated |
|
2009/08/14 / exmespac updated |
|
2009/08/12 / exddp I was surprised to find the home-grown looking compression algorithm is identical to one found in exhxp a while back. The archives share other similarities so maybe some coder has been moving around... exddp.zip Contents: // exddp.cpp, v1.0 2009/08/12 // This tool extracts DDP2/DDP3 (*.dat) archives.Known to work with: 2009/07/10 PIL 「仏蘭西少女」 *.dat (sig=DDP2, DDP3) |
|
2009/08/08 / exdebopak Long ago, I wrote a tool that automatically merges image-delta-fragments like those found here. I've been using it for years ... maybe I should do a little cleanup and release it some day. exdebopak.zip Contents: // exdebopak.cpp, v1.0 2009/08/08 // This tool extracts PAK (*.pak) archives used by でぼの巣製作所 in 神楽道中記.Known to work with: 2009/07/24 でぼの巣製作所 「神楽道中記」 *.pak (sig=PAK) |
|
2009/08/08 / exbelldat updated |
|
2009/08/07 / exl5enj updated |
|
2009/08/04 / exhud Simple is nice sometimes. exhud.zip Contents: // exhud.cpp, v1.0 2009/08/04 // This tool extracts data from *.hud archives.Known to work with: 2009/07/31 HUG 「明日はきっと、晴れますように」 *.hud (sig=none) |
|
2009/08/04 / exifdypf updated |
|
2009/08/04 / expcf Apparently somebody is a fan of exotic algorithms. This format uses multiple block ciphers (AES, RC6, etc) and a tweaked implementation of SHA-256 for encryption. For data compression, it's using fancy Move-To-Front and Burrows-Wheeler transformations followed by custom RLE/LZ77 or Range Encoding. Finally, some images are compressed with a custom block algorithm that seems similar to JPEG without the DCTs. Updated 1.01: Now supports Tiara予約特典 りゃぼディスク. Updated 1.02: Now handles multi-block compression (fixes voice.pcf). expcf.zip Contents: // expcf.cpp, v1.02 2009/08/05 // This tool extracts data from encrypted PackCode (*.pcf) archives.Known to work with: 2009/07/31 Symphony 「Tiara」 2009/07/31 Symphony 「Tiara予約特典 りゃぼディスク」 *.pcf; *.gbc (sig=PackCode; GBCF) |
|
2009/06/07 / d3dslide I've been looking for a simple program to idle displaying images on my HTPC but nothing really did what I wanted. At least it was kindof fun learning Direct3D to write one myself. This application displays an animated slideshow using a handful of effects smoothly animated using 3D hardware. The methods are optimized to always fill the screen (no black bars) and it tries to select methods appropriate to the aspect ratio of each image. In particular this does well against very tall images like magazine and stickposter scans. A modern GPU with vertex shader 1.1 and pixel shader 2.0 is needed. More video RAM may allow you to use higher resolution textures. If you notice slight animation stutters sometimes during image transitions, try tweaking the MAX_TEXTURE_PIXELS values in d3dslide.ini. That can also be used to improve quality if you're feeling adventurous. :) I haven't tested this on very much different hardware, so let me know how it goes. I am particularly interested in performance with very high resolution images (7000x3400 etc). Updated 1.02 - Fixed a bug configuring the presentation method weights. - Added a few new configuration options. - Improved performance with large textures a little bit. - Changed animation timing to be based on frames instead of real time; this makes it smoother particularly when dropping occasional frames. d3dslide.zip Contents: // d3dslide v1.02 by asmodean |
|
2009/06/30 / exsteldat I'm surprised the obfuscation here got so much simpler. exsteldat.zip Contents: // exsteldat.cpp, v1.0 2009/06/30 // This tool extracts data from Rosebleu's NEKOPACK (*.dat) archives.Known to work with: 2009/06/26 Rosebleu 「Stellar☆Theater」 *.dat (sig=NEKOPACK) |
|
2009/06/29 / gyu2bmp updated |
|
2009/06/27 / exkizpak Only supports the new versions; I don't care about ancient games. exkizpak.zip Contents: // exkizpak.cpp, v1.0 2009/06/27 // Extracts KCAP (*.PACK) archives used by 痕−きずあと−.Known to work with: 2009/06/26 Leaf 「痕−きずあと−」 *.pak; *.bjr (sig=KCAP; BM) |
|
2009/06/23 / exnllpk updated / exdieslib updated |
|
2009/06/02 / exvcpak I kept looking at the scramble algorithm trying to figure out why it does several operations that result in constant values ... finally I concluded that whoever wrote the code is just an idiot. exvcpak.zip Contents: // exvcpak.cpp, v1.0 2009/06/02 // This tool extracts data from Valkyrie Complex's *.PAK archives.Known to work with: 2009/05/29 CIRCUS 「ヴァルキリーコンプレックス」 *.pak (sig=none) |
|
2009/05/31 / exs4alf updated |
|
2009/05/31 / exscharc Thanks for the readme.txt informing that your obfuscation was based on the Mersenne Twister PRNG. ;) exscharc_nosrc.zip Contents: // exscharc.cpp, v1.0 2009/05/31 // This tool extracts data from ARC archives used by Trample on Schatten!!. // cpb2bmp.cpp, v1.02 2007/09/01 // This tool converts CPB (*.cpb) images to bitmaps. // Compile with -DSENTINEL, -DZWEIWORTER or -TVKIETAHI.Known to work with: 2009/05/29 TAIL WIND 「Trample on Schatten!!〜かげふみのうた〜」 *.arc (sig=none) |
|
2009/04/03 / exchpac updated |
|
2009/03/31 / extricgf updated / exchpac updated / miscmja updated |
|
2009/03/17 / exnpa updated |
|
2009/03/08 / excfarc updated |
|
2009/03/03 / exdieslib updated |
|
2009/03/02 / miscmja updated |
|
2009/02/08 / extcd3 updated |
|
2009/02/02 / miscmja updated |
|
2009/02/01 / miscmja updated / exkifint updated / exnllpk updated |
|
2009/01/31 / decrbrads I should have recognized more quickly that the encryption being used here is identical to decrkansa, but that seemed so unlikely that I ended up reversing it all over again. I guess some game makers have been cut&pasting crypto code. This tool only decrypts the archives; use exbrdat to extract them. decrbrads.zip Contents: // decrbrads.cpp, v1.0 2009/01/31 // This tool decrypt's BLACKRAINBOW's encrypted *.ads archives. // Use exbrdat to extract afterwards.Known to work with: 2009/01/30 BLACKRAINBOW 「相姦遊戯2」 *.ads (sig=none) |
|
2009/01/31 / ex4ag updated |
|
2009/01/29 / ar2bugfix This tool fixes a crash, which many people have been wailing about, encountered when fighting Raki in the USA version of Ar Tonelico 2. NIS really made a mess out of the localization of this game ... there are other less deadly bugs, like the IPD contact text, that I might also clean up later. Note that this tool is implemented as a scanner-patcher so that it will work with any target; run it against the game executable or any uncompressed disc image of the game. Updated 1.01: This is a command line tool but I added a small delay so that novice users can drag&drop an ISO to it and have enough time to read the confirmation message. ar2bugfix.zip Contents: // ar2bugfix.cpp, v1.01 2009/01/30 // This tool fixes a crashing bug encountered when fighting Raki in the // USA release of Ar Tonelico 2 (SLUS_217.88).Known to work with: 2009/01/20 Banpresto/GUST 「Ar Tonelico 2: Melody of Metafalica (PS2)」 SLUS_217.88, *.ISO (sig=none) |
|
2009/01/25 / exar2 This can extract/rebuild RPK.BIN from Ar Tonelico 2 and also extract/rebuild the scripts (*.evd). Script editting isn't terribly useful because text data is stored in several other places (including the *.ERX which seem to be executable overlays or something). But since I wasted some time looking at this I may as well release the tools and let people pretend they're going to redo the pathetic translation. Note that the scripts are SJIS text using wide-ascii(?) characters. I suggest uema's iftm2 Susie plugin for the TIM2 (*.tm2) graphics since XnView screws up the color. Use bmp8to32 -fixalpha for correct transparency. Updated: Added unlzr to decompress the LZR compressed data. Updated: Added exar2fp to extract the *.fp archives (no rebuilding since I feel lazy). Also fixed a bug in unlzr. exar2.zip Contents: // exar2rpk.cpp, v1.0 2009/01/22 // Extracts/rebuilds RPK archives used by Ar Tonelico 2. // exar2fp.cpp, v1.0 2009/01/28 // Extracts multiple *.fp archives used by Ar Tonelico 2. // unlzr.cpp, v1.01 2009/01/28 // Uncompresses LZR data (mostly TIM2 graphics) used by GUST. // exar2evd.cpp, v1.0 2009/01/22 // Extracts/rebuilds EVD scripts used by Ar Tonelico 2.Known to work with: 2009/01/20 Banpresto/GUST 「Ar Tonelico 2: Melody of Metafalica (PS2)」 RPK.BIN, *.fp; *.lzr (sig=none; LZR) |
|
2009/01/02 / exnllpk updated |
|
2009/01/02 / exald I've been wondering what the AJP are so I wrote a tool to convert them... if I had realized they are mostly animation junk I would not have bothered. This only converts the AJP/masks, so use Kouji's susie plugin or something else for the QNT images. exald.zip Contents: // exald.cpp, v1.0 2009/01/02 // Extracts ALD archives used by AliceSoft. AJP are converted to jpeg/bitmaps.Known to work with: 2008/09/26 ALICESOFT 「AliveZ」 *.ald; *.ajp (sig=none; AJP) |
|
2008/12/29 / message board online I missed having an easy way for people to comment and report problems etc, so I put up an experimental message board; feel free to post so it seems worth while... |
|
2008/12/28 / exnpa updated |
|
2008/12/28 / exmespac For some reason they changed the graphic formats drastically, using different compression and muliple filtering algorithms. The delta filter mode is reasonable but the type2 one is ... extremely obtuse. If anybody knows the name of the technique, please let me know. Updated: Apparently the strange algorithm is converting a YUV colorspace to RGB. The weights aren't quite the same though. exmespac.zip Contents: // ge2bmp2.cpp, v1.0 2008/12/28 // This tool converts GE and PGD3 (*.pgd) images from M.E.s. Use ge2bmp for // other varieties of this format. // exmarupac.cpp, v1.01 2008/06/27 // This tool extracts files from *.PAC archives used by STRIKE's マル秘人事部凌辱課. // Use pgd2tga for the graphics.Known to work with: 2008/12/19 セレス 「M.E.s. −同級生メイド調教−」 *.pac; *.pgd (sig=none; GE) |
|
2008/12/27 / exihkcap exihkcap.zip Contents: // exihkcap.cpp, v1.0 2008/12/27 // Extracts KCAP (*.PACK) archives used by Interheart.Known to work with: 2008/12/26 INTERHEART 「悪戯麻雀」 data.pack (sig=KCAP) |
|
2008/12/27 / exlac It seems like I've seen extractors for these archives before but it was easier to rewrite than find an old tool. DDS Converter has problems with most of the graphics, so I suggest using XnView to convert instead. I hope ugly 3D junk like this doesn't become common... exlac.zip Contents: // exlac.cpp, v1.0 2008/12/27 // Extracts LAC (*.PAK) archives used by Leaf. // extexpack.cpp, v1.0 2008/12/27 // Extracts TEX PACK0.02 (*.TEX) archives used by Leaf.Known to work with: 2008/12/26 Leaf 「君が呼ぶ、メギドの丘で」 *.pak, *.tex; *.lgf (sig=LAC, TEX PACK0.02; lgf) |
|
2008/12/27 / exdaf2 updated |
|
2008/12/26 / extafarc updated |
|
2008/12/23 / exbkarc updated |
|
2008/12/22 / extskfdat extskfdat.zip Contents: // extskfdat, v1.0 2008/12/22 // This tool extracts tskforce (*.dat) archives.Known to work with: 2008/12/19 Digital+Cute 「むすめーかー」 *.dat (sig=tskforce) |
|
2008/09/29 / miscmja updated |
|
2008/09/12 / extvkarc updated |
|
2008/09/12 / don't send flowers yet Since people have been emailing me, yes, I am still alive. It seems a lot of time has leaked away while I've been addicted to Soul Calibur 4; it's way too easy to spend all night playing online. :) Now if only the Xbox360's d-pad worked correctly... |
|
2008/07/27 / exbsa An old tool for this format wasn't working very well, so I finally got around to writing something myself. For some reason I thought it was a lot more complicated than this ... I'm not sure if this will work for older games. exbsa.zip Contents: // exbsa, v1.0 2008/07/27 // This tool extracts data from newer BSS-Arc (*.bsa) archives.Known to work with: 2008/07/25 BISHOP 「毎日けだものっ!! らぶえろ☆ももいろ☆すくーるらいふ♪」 *.bsa (sig=BSS-Arc; BSS-Graphic, BSS-Composition) |
|
2008/07/27 / exarc4 updated / miscmja updated |
|
2008/07/26 / exdieslib updated |
|
2008/07/26 / exwlcs I was just thinking about how they never change this format ... and then they changed it. :) exwlcs.zip Contents: // exwlcs, v1.0 2008/07/26 // This tool extracts data lcsebody+lcsebody.lst used by W触区〜新・学園妖触譚〜.Known to work with: 2008/07/25 Lusterise 「W触区〜新・学園妖触譚〜」 lcsebody.lst+lcsebody (sig=none) |
|
2008/07/25 / exbelldat updated |
|
2008/07/19 / exkifint updated |
|
2008/07/16 / temporary page online Seems like asmodean's reverse engineering page at Rakuten has become unavailable. Their site had become annoyingly cluttered with ads and other junk, so it's nice to have some motivation to move ... but since I am lazy now and want to play Persona 4 instead, this ghetto temporary page will have to suffice for now. :) No comments or BBS yet. Send email to asmodean [at] hush.com or find me on efnet IRC. |