【文章标题】: 脱ASProtect 2.1x SKE -> Alexey Solodovnikov瑞星升级保姆的程序的壳
【作者邮箱】: cxh852456@163.com
【作者主页】:
【作者QQ号】: 290019543
【软件名称】: 瑞星升级保姆的程序
【下载地址】: 自己搜索下载
【加壳方式】: ASProtect 2.1x SKE -> Alexey Solodovnikov
【使用工具】: od 等等
【操作平台】: XP
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
一.脱壳
用OD载入,看到熟悉的入口
00401000 > 68 01104300 PUSH RSUpper.00431001
00401005 E8 01000000 CALL RSUpper.0040100B
0040100A C3 RETN
0040100B C3 RETN
0040100C FF77 FC PUSH DWORD PTR DS:[EDI-4]
0040100F 47 INC EDI
00401010 66:AE SCAS BYTE PTR ES:[EDI]
本人比较懒,就先拿高手门的东西用一下
用iatfixer_2[1][1].2s脚本跑一下,一会儿就到程序的入口拉,而且已经被DUMP下来拉
脚本提示有STOLEN CODE
二修复IAT
脚本全帮我高定拉,这个脚本还真是强,在这里不的不感叹大虾门无私的奉献精神
ALT+L
看到记录数据,
iatstartaddr: 00401000 | RSUpper.<模块入口点>
iatstart_rva: 00001000
iatsize: 000002E0
0114022F 断点位于 0114022F
OEP_rva: 0000254C
拿出SuperImportREC,选择瑞星升级保姆的进程
OEP输入0000254C
RAV输入1000
大小输入1000
获取输入表,剪切掉无效的指针,抓取文件,修复后保存
三,修复STOLEN CODE
还是用补区段大法,ALT+M打开内存镜象
在00E70000-----04C60000全部下断点,SHIFT+F9知道程序运行
发现程序用到下面几个段
00E70000-00E8B000
00F00000-00F43000
00F50000-00F6C000
01110000-01111000
01140000-01141000
04C30000-04C31000
04C40000-04C41000
全部用LORDPE抓出来,添加到修复后的程序的末尾并重建PE
四 搞定自效验
打开内存镜象,在补的区断上全部下断,F9三次后单步到
00F28A5B 8B73 30 MOV ESI,DWORD PTR DS:[EBX+30] ; un_RSUpp.01140D64
00F28A5E 8B7B 14 MOV EDI,DWORD PTR DS:[EBX+14]
00F28A61 A1 F037F300 MOV EAX,DWORD PTR DS:[F337F0]
00F28A66 8B40 34 MOV EAX,DWORD PTR DS:[EAX+34] ***********NOP
00F28A69 FFD0 CALL EAX ***********NOP
00F28A6B 2945 0C SUB DWORD PTR SS:[EBP+C],EAX ***********NOP
00F28A6E 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C] ***********NOP
00F28A71 2B43 18 SUB EAX,DWORD PTR DS:[EBX+18]
00F28A74 2B43 68 SUB EAX,DWORD PTR DS:[EBX+68]
00F28A77 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
00F28A7A 8D43 24 LEA EAX,DWORD PTR DS:[EBX+24]
00F28A7D 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
00F28A80 85FF TEST EDI,EDI
00F28A82 76 38 JBE SHORT un_RSUpp.00F28ABC
00F28A84 EB 01 JMP SHORT un_RSUpp.00F28A87
修改为
00F28A5B 8B73 30 MOV ESI,DWORD PTR DS:[EBX+30] ; 123.01140D64
00F28A5E 8B7B 14 MOV EDI,DWORD PTR DS:[EBX+14]
00F28A61 A1 F037F300 MOV EAX,DWORD PTR DS:[F337F0]
00F28A66 90 NOP
00F28A67 90 NOP
00F28A68 8B4424 58 MOV EAX,DWORD PTR SS:[ESP+58]
00F28A6C 83E8 05 SUB EAX,5
00F28A6F 90 NOP
00F28A70 90 NOP
00F28A71 2B43 18 SUB EAX,DWORD PTR DS:[EBX+18]
00F28A74 2B43 68 SUB EAX,DWORD PTR DS:[EBX+68]
00F28A77 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
00F28A7A 8D43 24 LEA EAX,DWORD PTR DS:[EBX+24]
00F28A7D 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX
00F28A80 85FF TEST EDI,EDI
00F28A82 76 38 JBE SHORT 123.00F28ABC
00F28A84 EB 01 JMP SHORT 123.00F28A87
改完后保存,运行,一切正常,收工
--------------------------------------------------------------------------------
【经验总结】
前辈的脚本太厉害了
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2006年11月17日 20:36:01
[课程]Android-CTF解题方法汇总!