|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册帐号
×
【破文标题】破解支付宝自动支付程序1.1
【破文作者】颓废の傻鱼
【作者邮箱】7484345@qq.com
【作者主页】http://hi.baidu.com/颓废傻鱼
【破解工具】OD,PEID
【破解平台】Windows_Xp_Sp2
【软件名称】支付宝自动支付程序1.1
【软件大小】214KB
【原版下载】网络搜索
【保护方式】hmimys加壳+机器码
【软件简介】不详
【破解声明】偶是小菜鸟,纯属为了学习破解,没有其他目的
------------------------------------------------------------------------
【破解过程】PEID查壳为:hmimys Protect v1.0 *
脱壳部分:
OD载入程序停在入口特征
004A1220 >E8 BA000000 call004A12DF;由于是进CALL所以F7跟入
004A12250300add eax, dword ptr [eax]
004A12270000add byte ptr [eax], al
004A122900F0add al, dh
004A122B0900ordword ptr [eax], eax
F7跟入后来到004A12DF
004A12DF5Epop esi ; 支付宝自.004A1225
004A12E083C6 64 add esi, 64
004A12E3ADlodsdword ptr [esi]
004A12E450pusheax
004A12E5ADlodsdword ptr [esi]
004A12E650pusheax
往下拉看到代码有返回的特征retn 这个就是直接返回到OEP了
004A1328ABstosdword ptr es:[edi]
004A1329^ EB E2 jmp short 004A130D
004A132B25 FFFFFF7F and eax, 7FFFFFFF
004A133050pusheax
004A133155pushebp
004A1332FF53 04 calldword ptr [ebx+4]
004A1335ABstosdword ptr es:[edi]
004A1336^ EB DA jmp short 004A1312
004A133883EB 44 sub ebx, 44
004A133B8BF3mov esi, ebx
004A133DADlodsdword ptr [esi]
004A133E50pusheax
004A133FC3retn;F4运行到此处 在单步F8到达OEP
单步F8来到这里
00481AA055db55 ;CHAR 'U'
00481AA18Bdb8B
00481AA2ECdbEC
00481AA383db83
00481AA4C4dbC4
00481AA5F0dbF0
00481AA6B8dbB8
从模块中删除分析,看到以下的入口特征为Delphi的
00481AA055pushebp; COMDLG32.76320000
00481AA18BECmov ebp, esp
00481AA383C4 F0 add esp, -10
00481AA6B8 58184800 mov eax, 00481858
00481AABE8 1848F8FF call004062C8
00481AB0A1 D4354800 mov eax, dword ptr [4835D4]
00481AB58B00mov eax, dword ptr [eax]
00481AB7E8 6CF2FEFF call00470D28
PEID查壳为Borland Delphi 6.0 - 7.0 可以正常运行 脱壳完成
破解部分:
运行程序调出注册框 等待30秒后可以试用 在注册码里面随便输入点注册提示错误
OD载入脱壳程序 F9运行程序 出现异常不用管再次F9运行 随便输入注册码我输入520
点注册 提示注册失败 此时不要点确定 按F12暂停 在堆栈窗口里面之间显示注册码
0012F594|004324A6返回到 unpack.004324A6 来自 unpack.004323B0
0012F598|FFFFFFFF
0012F59C|FFFFFFFF
0012F5A0|00000000
0012F5A4|00432493返回到 unpack.00432493 来自 unpack.00432494
0012F5A8|0047D9A9返回到 unpack.0047D9A9 来自 unpack.00432488
0012F5AC|0012F918指向下一个 SEH 记录的指针
0012F5B0|0047DA92SE 处理器
0012F5B4|0012F5E8
0012F5B8|0044A35Cunpack.0044A35C
0012F5BC|00E7502C
0012F5C0|00000000
0012F5C4|00000000
0012F5C8|00000000
0012F5CC|00000000
0012F5D0|00E7082CASCII "520"
0012F5D4|00E76764ASCII "2310"
0012F5D8|00000000
0012F5DC|00E7567CASCII "961441922402884903924594805285766376728407689698649129601008105611041152120013261890193219142100204622402310"
0012F5E0|00E7564CASCII "00000F1300010809000000003FEBFBFF"
0012F5E4|00E720EC
机器码:00000F1300010809000000003FEBFBFF
注册码961441922402884903924594805285766376728407689698649129601008105611041152120013261890193219142100204622402310
------------------------------------------------------------------------
【破解总结】脱这个壳的时候走F7进入时 单步走到一处JMP往回跳 回循环在那里 不能用F4不过
否则程序会跑飞了 此时在JMP下面找找有没有返回的标记 在返回标记处F4就OK了
破解部分比较简单 利用错误提示窗口这一信息就可以找到关键跳和关键CALL了
由于堆栈里面已经显示注册码了 所以我就没有在去找关键跳和关键CALL
------------------------------------------------------------------------
【版权声明】归属原作者所有 |
|
|