-
-
未解决
[求助]PAK资源包解包伪代码逻辑
50.00雪花
-
发表于:
2024-4-29 14:05
1881
-
未解决 [求助]PAK资源包解包伪代码逻辑
50.00雪花
0 前言
本人逆向入坑小白,刚刚接触不久,想学习解析一款05年左右出品的游戏的资源,后缀名为pak文件。奈何自己鼓捣了一个月,只能定位到解包位置,不能了解其内部算法和原理,特求帮忙。
1 文件
游戏的资源文件如下所示:
可以看到都是pak后缀;使用WinHex打开文件内容,发现这些文件头都是一致的。
以configs.pak为例:
这些文件头(猜测是魔数)基本上都是4C480000,28040820,76667331。
2 逆向过程
通过程序调试,以及魔数搜索,发现游戏客户端调用了IVCore.dll进行魔数校验。为了方便,我直接将dll文件格式改为exe格式,并且自动脱壳(Aspack壳)。
2.1 拖入IDA,定位魔数校验环节
可知魔数校验通过后,跳转到了44B4E1函数,如下:
从该部分开始,我就有点看不懂是在做什么了。
根据动态调试结果我能看到它貌似复制了一些数据到另一个内存位置,并且进行了异或等操作。由于小弟静态分析能力实在太差,因此记录下了动态追踪的过程:
configs.pak代码跟踪
4C480000 28040820 76667331 三个魔数
循环挪动0x44(68)个dword数据:从4C480000到6D09DB30
循环挪动0x61(97)个dword数据:从923A3299到3107D379
循环挪动0xB326(45862)个dword数据:从925BA470到6BC30FE0
以第一段为例进行处理:
4C480000 28040820 76667331 2C3D2B68 3E781A8E CE6D9B20 EC583ACD 3B08FBAA CD1D1AEB 94814E45 E120218D D54BCF01 D91C1961 C05AD613 C12C6EA8 E74AA731 D04A7ACC 335DB344 6DC8AA75 C3C2C1C0 6B2F6667 73A2AD84 CE01944A AACA6352 FBB52E82 87A9BFF3 948593D0 E6E7E4E5 9693D8D9 F6DBD4FD EFCE6C6F E7C92636 175E0CC2 A1ECAA4F 8EBAF272 111AA2A1 919BC668 CCF84CFA D11095F3 E6498F7E CABED191 00B1A2DF 9B546AC9 45D521DE B21DA4DB 7A3A3494 D384D9A7 CCFE42EE 23AFF008 DB7BB620 B01E9DE9 184ECD87 303F9EF0 BC316B42 ED54327C AC06C48D EBA032EF 12588405 AF8B704E 6DD93FEF 3705E1A8 3262C245 E5EF5387 4B788C29 9579281A 3C8F552F C5574C7F A83D2F22 6D09DB30
前三位魔数不管
2C和0x78进行xor异或 结果是54
54和0x05进行xor异或 结果是51
51和0x27进行xor异或 结果是76
76和0x00进行xor异或 结果是76 然后76和76
之后就有点跟不上了
2.2 伪代码部分
附件
IVCore.dll原件以及我自己破壳后的exe已经上传到附件,configs.pak也在其中。另外为了对比,还放上了script.pak文件作为对标。
小弟感激不尽!求各位大佬指点!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2024-5-4 09:17
被mb_lbfikkjo编辑
,原因: 敬请审核,谢谢