本帖最后由 livingbody 于 2014-10-26 13:41 编辑
萤火虫快递单打印逆向过程
一、查壳
很明显ASPack2.12
二、脱壳
用咱们的逆向工具包中的脱壳工具“AspackDie”脱壳机脱壳,脱完了再检查下,脱得干干净净。
三、分析
“查找未注册”分析后发现如下几段,对于功能爆破已经足够了。
1、爆破未注册版不能设置启动密码、 - 0059F498 |. 8038 00 cmp byte ptr ds:[eax],0x0
- 0059F49B |. 75 2F jnz XUnpacked.0059F4CC
- 0059F49D |. 66:A1 24F5590>mov ax,word ptr ds:[0x59F524]
- 0059F4A3 |. 50 push eax
- 0059F4A4 |. 6A 00 push 0x0
- 0059F4A6 |. 8D45 FC lea eax,[local.1]
- 0059F4A9 |. BA 28F55900 mov edx,Unpacked.0059F528 ; 未注册版不能设置启动密码!
- 0059F4AE |. E8 AD55E6FF call Unpacked.00404A60
- 0059F4B3 |. 8B55 FC mov edx,[local.1]
复制代码
2、爆破未注册版数据上限的限制 - 005AC6DA . E8 85660000 call Unpacked.005B2D64
- 005AC6DF . 84C0 test al,al
- 005AC6E1 . 75 3B jnz XUnpacked.005AC71E
- 005AC6E3 . 833D A47F5C00>cmp dword ptr ds:[0x5C7FA4],0x5
- 005AC6EA . 7C 32 jl XUnpacked.005AC71E
- 005AC6EC . 66:A1 84CB5A0>mov ax,word ptr ds:[0x5ACB84]
- 005AC6F2 . 50 push eax
- 005AC6F3 . 6A 00 push 0x0
- 005AC6F5 . 8D45 FC lea eax,dword ptr ss:[ebp-0x4]
- 005AC6F8 . BA 88CB5A00 mov edx,Unpacked.005ACB88 ; 未注册版单据数达上限,请您注册后再导入新单据!
复制代码3、爆破未注册版标题以及注册框显示等信息 - 3、爆破未注册版标题以及注册框显示等信息
- 005B3B04 . E8 5BF2FFFF call Unpacked.005B2D64
- 005B3B09 . A2 03805C00 mov byte ptr ds:[0x5C8003],al
- 005B3B0E . 803D 03805C00>cmp byte ptr ds:[0x5C8003],0x0
- 005B3B15 . 0F85 8B000000 jnz Unpacked.005B3BA6
- 005B3B1B . BA C0415B00 mov edx,Unpacked.005B41C0 ; 萤火虫快递单打印软件 - 版本:1.2 注册版 [未注册]
- 改
- 005B2D64 55 push ebp
- 005B2D65 8BEC mov ebp,esp
- 005B2D67 B9 07000000 mov ecx,0x7
- 为
- 005B2D64 B8 01000000 mov eax,0x1
- 005B2D69 C3 retn
- 005B2D6A 90 nop
- 005B2D6B 90 nop
- 解决“未注册”为“注册版”
复制代码四、逆向效果图
1.设置系统密码
2.启动密码验证
3.注册按钮消除
4. 解决窗体标题“未注册”为“注册版”
Tips:追码也很容易,下面加黑的是我追的码:
- 0012F390 01614DC4 ASCII "D4EFB211DFDFBF39D0FAF5C623D99A25"
- 0012F394 01614DF4 ASCII "52A99D326C5FAF0D93FBFDFD112BFE4D"
- 0012F398 015B7FC4 ASCII "1111111111"
- 0012F39C 0161DA00 ASCII "1111111111"
复制代码
此外,这个包里的的“吾爱汇编论坛OD”不能全选修改的代码,这个bug期望更改。
|