【文章标题】: 手脱ASPack 2.12
【文章作者】: 浮海观云
【作者邮箱】: cc_sz@163.com
【作者主页】: www.money988.com
【作者QQ号】: 250341858
【软件名称】: 股市消息简讯发送系统
【软件大小】: 1.70M
【下载地址】: 在我手上
【加壳方式】: 压缩壳?
【保护方式】: ASPack 2.12 -> Alexey Solodovnikov
【编写语言】: Borland Delphi 6.0 - 7.0
【使用工具】: OD
【操作平台】: windows
【软件介绍】: 台湾股市消息简讯发送系统
【作者声明】: 不只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
用OD加载:
00901001 > 60 PUSHAD ; F8单步步过
00901002 E8 03000000 CALL CustMana.0090100A ; F7单步步入
00901007 - E9 EB045D45 JMP 45ED14F7
0090100C 55 PUSH EBP
0090100D C3 RETN
以下F8步过:
0090100A 5D POP EBP ; CustMana.00901007
0090100B 45 INC EBP
0090100C 55 PUSH EBP
0090100D C3 RETN
00901008 /EB 04 JMP SHORT CustMana.0090100E
0090100A |5D POP EBP
0090100B |45 INC EBP
0090100C |55 PUSH EBP
0090100D |C3 RETN
0090100E \E8 01000000 CALL CustMana.00901014 F7步入
00901013 EB 5D JMP SHORT CustMana.00901072
以下F8向前走:
00901014 5D POP EBP ; CustMana.00901013
00901015 BB EDFFFFFF MOV EBX,-13
0090101A 03DD ADD EBX,EBP
0090101C 81EB 00105000 SUB EBX,CustMana.00501000
00901022 83BD 22040000 0>CMP DWORD PTR SS:[EBP+422],0
00901029 899D 22040000 MOV DWORD PTR SS:[EBP+422],EBX
0090102F 0F85 65030000 JNZ CustMana.0090139A
00901035 8D85 2E040000 LEA EAX,DWORD PTR SS:[EBP+42E]
如果有不听指挥向后的F4军法处决:
00901140 ^\EB EB JMP SHORT CustMana.0090112D
00901142 8B06 MOV EAX,DWORD PTR DS:[ESI]
00901144 EB 0A JMP SHORT CustMana.00901150
00901146 803E 00 CMP BYTE PTR DS:[ESI],0
00901149 ^ 75 F3 JNZ SHORT CustMana.0090113E
0090114B 24 00 AND AL,0
0090114D C1C0 18 ROL EAX,18
00901150 2BC3 SUB EAX,EBX
00901152 8906 MOV DWORD PTR DS:[ESI],EAX
00901154 83C3 05 ADD EBX,5
00901157 83C6 04 ADD ESI,4
0090115A 83E9 05 SUB ECX,5
0090115D ^ EB CE JMP SHORT CustMana.0090112D
F4来到这里
009011A9 68 00800000 PUSH 8000
009011AE 6A 00 PUSH 0
009011B0 FFB5 56010000 PUSH DWORD PTR SS:[EBP+156]
009011B6 FF95 51050000 CALL DWORD PTR SS:[EBP+551]
009011BC 8B9D 31050000 MOV EBX,DWORD PTR SS:[EBP+531]
009011C2 0BDB OR EBX,EBX
009011C4 74 08 JE SHORT CustMana.009011CE
下面要出水了啊,POPAD!
0090139A B8 E4014200 MOV EAX,CustMana.004201E4
0090139F 50 PUSH EAX
009013A0 0385 22040000 ADD EAX,DWORD PTR SS:[EBP+422]
009013A6 59 POP ECX
009013A7 0BC9 OR ECX,ECX
009013A9 8985 A8030000 MOV DWORD PTR SS:[EBP+3A8],EAX ;注意这个关键地方
009013AF 61 POPAD
009013B0 75 08 JNZ SHORT CustMana.009013BA
009013B2 B8 01000000 MOV EAX,1
009013B7 C2 0C00 RETN 0C
009013BA 68 E4018200 PUSH CustMana.008201E4
009013BF C3 RETN 脱壳完成跳到程序代码
怎么是这样的呢?看起来太别扭了吧。
008201E4 ? 55 PUSH EBP
008201E5 8BECB90A DD 0AB9EC8B
008201E9 0000006A DD 6A000000
008201ED 006A0049 DD 49006A00
008201F1 75F95153 DD 5351F975
008201F5 B87CF681 DD 81F67CB8
008201F9 00E8F976 DD 76F9E800
008201FD BEFF33C0 DD C033FFBE
00820201 55689205 DD 05926855
00820205 820064FF DD FF640082
00820209 30648920 DD 20896430
0082020D 8D55E8A1 DD A1E8558D
00820211 10DE8400 DD CustMana.0084DE10
00820215 8B00E8E4 DD E4E8008B
00820219 5CC6FF8B DD 8BFFC65C
0082021D 45E88D55 DD 558DE845
00820221 ECE899B0 DD B099E8EC
00820225 BEFF8B55 DD 558BFFBE
00820229 ECB8542B DD 2B54B8EC
0082022D 8500E870 DD 70E80085
00820231 4EBEFF8D DD 8DFFBE4E
右键分析代码,这样舒服多了
008201E4 /. 55 PUSH EBP
008201E5 |. 8BEC MOV EBP,ESP
008201E7 |. B9 0A000000 MOV ECX,0A
008201EC |> 6A 00 /PUSH 0
008201EE |. 6A 00 |PUSH 0
008201F0 |. 49 |DEC ECX
008201F1 |.^ 75 F9 \JNZ SHORT CustMana.008201EC
008201F3 |. 51 PUSH ECX
008201F4 |. 53 PUSH EBX
008201F5 |. B8 7CF68100 MOV EAX,CustMana.0081F67C
008201FA |. E8 F976BEFF CALL CustMana.004078F8
008201FF |. 33C0 XOR EAX,EAX
00820201 |. 55 PUSH EBP
00820202 |. 68 92058200 PUSH CustMana.00820592
00820207 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0082020A |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
0082020D |. 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
00820210 |. A1 10DE8400 MOV EAX,DWORD PTR DS:[84DE10]
00820215 |. 8B00 MOV EAX,DWORD PTR DS:[EAX]
然后呢?dump程序就行了,没有处理也能直接运行程序了,真是省心啊。
--------------------------------------------------------------------------------
【经验总结】
没什么好总结的,照猫画虎,比葫芦画瓢,瞎猫也能逮到死耗子。
为了以后修改本程序方便,直接二进制查找:61 75 08 B8 01 00 00 00 C2 0C 00
到popad后,秒脱。
/*网上找到个脚本,看了更明白些
////////////////////////////////////////////////////////////////////
// ASPack 2.12 OEP finder //
// Author: WaSt3d_ByTes //
// Email : wast3dbytes@gmail.com //
// OS : WinXP Pro + SP2, OllyDbg 1.10 Final, OllyScript v0.92 //
///////////////////////////////////////////////////////////////
*/
findop eip, #61#
bphws $RESULT, "x"
run
Break:
bphwc $RESULT
sti
sto
sto
sto
MSG "Oep found by WaSt3d_ByTes. Dump and fix IAT! Thank you for using my script..."
ret
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2008年08月07日 0:41:54
[课程]Android-CTF解题方法汇总!