能力值:
( LV12,RANK:210 )
|
-
-
2 楼
dll不能用的话,也可以直接分析文件格式
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
汗哦,我是超级菜鸟一个啊,哪里能够分析得出来文件格式啊。。
|
能力值:
( LV9,RANK:270 )
|
-
-
4 楼
压缩壳可以完美地脱掉,调试分析方便一些;脱加密壳则没多大意义。
FileCompress.dll 的导出函数有:
[FONT="Courier"]1 0041A190 StrCompressToFile
2 0041A08C FileDecompressToStrEx
3 00419F88 FileDecompressToString
4 00419ED0 FileDecompress
5 00419E14 FileCompress[/FONT]
其中 FileDecompressToStrEx 的函数声明可表示为:
[FONT="Courier"][COLOR="RoyalBlue"]int[/COLOR] FileDecompressToStrEx([COLOR="RoyalBlue"]char[/COLOR] *szFile, [COLOR="RoyalBlue"]char[/COLOR] *pOutBuffer, [COLOR="RoyalBlue"]int[/COLOR] *pOutBufferSize);
[B]参数[/B]
szFile : 要解压缩的文件路径、名称;
pOutBuffer : 接收输出解压数据的内存指针;
pOutBufferSize: 整数指针,指向的值为这块输出内存的大小。
[B]返回值[/B]
0 函数调用成功;
-0x1 失败,错误未知;
-0x2 失败,输出内存块太小,不足以接收全部解压内容。[/FONT]
用法
1. 先确定输出内存大小
[FONT="Courier"] *pOutBufferSize = 0; // 置 0 表示取解压后大小
FileDecompressToStrEx("path to file", [COLOR="DarkOrange"]NULL[/COLOR], pOutBufferSize);[/FONT] 如果调用成功, *pOutBufferSize 含解压后的大小。
楼主帖的那个调用参数就是取需要的Buffer大小!
2. 按 *pOutBufferSize 的值分配内存,得到 pOutBuffer。
3. 解压文件
[FONT="Courier"] FileDecompressToStrEx("path to file", pOutBuffer, pOutBufferSize);[/FONT]
楼主附件里文件 Server.xml 的解压结果:
[FONT="Courier"]<?xml version="1.0" encoding="GB2312" ?>
<root>
<CAE default="电信地址">
<site name="电信地址" IP="101.226.171.217" port="9999"/>
<site name="联通地址" IP="175.102.134.169" port="9999"/>
</CAE>
<Switch>
<Trade value="1"/>
<CAE value="1" Caption="行情"/>
</Switch>
<AutoChooseBest auto="1"/>
<Account>
<SaveAccount value="1"/>
<HideAccount value="0"/>
</Account>
</root>[/FONT]
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
天啊,谢谢MistHill 大哥,前面没有等到回复,就没有关注这个问题了,没有想到得到你的完美解决,
再次感谢。
|
|
|