能力值:
( LV12,RANK:210 )
在线值:

|
-
-
2 楼
dll不能用的话,也可以直接分析文件格式
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
汗哦,我是超级菜鸟一个啊,哪里能够分析得出来文件格式啊。。
|
能力值:
( LV9,RANK:270 )
|
-
-
4 楼
压缩壳可以完美地脱掉,调试分析方便一些;脱加密壳则没多大意义。
FileCompress.dll 的导出函数有:
1 2 3 4 5 | [FONT= "Courier" ]1 0041A190 StrCompressToFile
2 0041A08C FileDecompressToStrEx
3 00419F88 FileDecompressToString
4 00419ED0 FileDecompress
5 00419E14 FileCompress[ /FONT ]
|
其中 FileDecompressToStrEx 的函数声明可表示为:
1 2 3 4 5 6 7 8 9 10 11 | [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. 先确定输出内存大小
1 2 | [FONT= "Courier" ] *pOutBufferSize = 0; // 置 0 表示取解压后大小
FileDecompressToStrEx( "path to file" , [COLOR= "DarkOrange" ]NULL[ /COLOR ], pOutBufferSize);[ /FONT ]
| 如果调用成功,*pOutBufferSize 含解压后的大小。
楼主帖的那个调用参数就是取需要的Buffer大小!
2. 按 *pOutBufferSize 的值分配内存,得到 pOutBuffer。
3. 解压文件
1 | [FONT= "Courier" ] FileDecompressToStrEx( "path to file" , pOutBuffer, pOutBufferSize);[ /FONT ]
|
楼主附件里文件 Server.xml 的解压结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [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 大哥,前面没有等到回复,就没有关注这个问题了,没有想到得到你的完美解决,
再次感谢。
|
|
|