小菜T4nk手把手教你手脱灰鸽子2007 Beta 2最新版

【文章标题】: 小菜T4nk手把手教你手脱灰鸽子2007 Beta 2最新版
【文章作者】: T4nk
【作者邮箱】: [email protected]
【作者主页】: http://www.upx.com.cn
【软件名称】: 灰鸽子2007 Beta 2
【软件大小】: 1.71M
【加壳方式】: ASProtect 1.22 – 1.23 Beta 21 -> Alexey Solodovnikov
【保护方式】: ASProtect
【编写语言】: Delphi
【使用工具】: peid Od importrec
【操作平台】: Windows Xp Sp2
【软件介绍】: 国内知名的远程管理软件(比较有名的国内木马)
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

先用peid查下壳ASProtect 1.22 – 1.23 Beta 21 -> Alexey Solodovnikov

貌似强壳 5555

开工:

OD载入 异常除"内存访问异常"外全部打勾

来到

00401000 > 68 01808F00 PUSH H_Client.008F8001 //od载入后入口
00401005 E8 01000000 CALL H_Client.0040100B
0040100A C3 RETN
0040100B C3 RETN
0040100C 9A 7E20FA70 DF9>CALL FAR 9DDF:70FA207E ; 远距调用
00401013 DAACD6 4CCCF004 FISUBR DWORD PTR DS:[ESI+EDX*8+4F0CC4C]
0040101A 47 INC EDI
0040101B D5 E3 AAD 0E3
0040101D 93 XCHG EAX,EBX
0040101E E7 94 OUT 94,EAX ; I/O 命令
00401020 AE SCAS BYTE PTR ES:[EDI]
00401021 0852 81 OR BYTE PTR DS:[EDX-7F],DL
00401024 2240 67 AND AL,BYTE PTR DS:[EAX+67]
00401027 66:BA C3EF MOV DX,0EFC3
0040102B 9E SAHF

直接F9 运行

提示:访问违反:写入到[00000000]-使用shift+f7/f8/f9跳过异常以继续执行程序

出现
013D311C 3100 XOR DWORD PTR DS:[EAX],EAX
013D311E EB 01 JMP SHORT 013D3121
013D3120 68 648F0500 PUSH 58F64
013D3125 0000 ADD BYTE PTR DS:[EAX],AL
013D3127 00EB ADD BL,CH
013D3129 02E8 ADD CH,AL
013D312B 0158 68 ADD DWORD PTR DS:[EAX+68],EBX
013D312E AC LODS BYTE PTR DS:[ESI]
013D312F A9 3C016858 TEST EAX,5868013C
013D3134 313D 01685C27 XOR DWORD PTR DS:[275C6801],EDI
013D313A 3D 01685824 CMP EAX,24586801

看右小角

0012FF90 0012FFE0 指针到下一个 SEH 记录
0012FF94 013D30D3 SE 句柄
0012FF98 008F837C 返回到 H_Client.008F837C 来自 H_Client.008F837C
0012FF9C 00000000
0012FFA0 008F85F5 H_Client.008F85F5
0012FFA4 00000000
0012FFA8 00000000

go on 直到出现硬盘标识为止 

shift +F9

大约22次出现硬盘标识了

注意看右下角

0012FF5C 0012FF64 指针到下一个 SEH 记录
0012FF60 013D3219 SE 句柄
0012FF64 0012FFE0 指针到下一个 SEH 记录
0012FF68 013D38FC SE 句柄
0012FF6C 0012FF90
0012FF70 013C0000
0012FF74 013A0000
0012FF78 013D30B0
0012FF7C 013E189C ASCII "TUgvOAAAKVQ="
0012FF80 00400000 ASCII "MZP"

这时候再四次直接到最后一次异常

013D2AA6 3100 XOR DWORD PTR DS:[EAX],EAX //为asprotect 最后一次异常
013D2AA8 64:8F05 0000000>POP DWORD PTR FS:[0]
013D2AAF 58 POP EAX
013D2AB0 833D 786D3D01 0>CMP DWORD PTR DS:[13D6D78],0
013D2AB7 74 14 JE SHORT 013D2ACD
013D2AB9 6A 0C PUSH 0C
013D2ABB B9 786D3D01 MOV ECX,13D6D78
013D2AC0 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8]
013D2AC3 BA 04000000 MOV EDX,4
013D2AC8 E8 63E1FFFF CALL 013D0C30
013D2ACD FF75 FC PUSH DWORD PTR SS:[EBP-4]
013D2AD0 FF75 F8 PUSH DWORD PTR SS:[EBP-8]
013D2AD3 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
013D2AD6 8338 00 CMP DWORD PTR DS:[EAX],0
013D2AD9 74 02 JE SHORT 013D2ADD
013D2ADB FF30 PUSH DWORD PTR DS:[EAX]
013D2ADD FF75 F0 PUSH DWORD PTR SS:[EBP-10]
013D2AE0 FF75 EC PUSH DWORD PTR SS:[EBP-14]
013D2AE3 C3 RETN
013D2AE4 5F POP EDI
013D2AE5 5E POP ESI
013D2AE6 5B POP EBX
013D2AE7 8BE5 MOV ESP,EBP
013D2AE9 5D POP EBP
013D2AEA C3 RETN

在013D2AE3 C3 RETN 下断点

然后alt+m查看内存窗口

在code处下内存访问断点

然后shift +f9

到这里

013D2AE3 C3 RETN
013D2AE4 5F POP EDI
013D2AE5 5E POP ESI
013D2AE6 5B POP EBX
013D2AE7 8BE5 MOV ESP,EBP
013D2AE9 5D POP EBP
013D2AEA C3 RETN
013D2AEB 90 NOP

直接F9飞到光明顶

哈哈

005D17FC 55 PUSH EBP  //明显的Delphi入口
005D17FD 8BEC MOV EBP,ESP
005D17FF 83C4 F0 ADD ESP,-10
005D1802 53 PUSH EBX
005D1803 56 PUSH ESI
005D1804 B8 5C105D00 MOV EAX,H_Client.005D105C
005D1809 E8 5655E3FF CALL H_Client.00406D64
005D180E 8B1D C8B85D00 MOV EBX,DWORD PTR DS:[5DB8C8] ; H_Client.005E0C8C
005D1814 8B35 C4B95D00 MOV ESI,DWORD PTR DS:[5DB9C4] ; H_Client.005DCBF4
005D181A 8B06 MOV EAX,DWORD PTR DS:[ESI]
005D181C E8 FF5EEBFF CALL H_Client.00487720
005D1821 90 NOP

--------------------------------------------

直接脱壳后

用PEID一查

Borland Delphi 6.0 – 7.0

后续工作

用ImportRec和1.22的aspr插件修复后

程序运行正常

收工 by T4nk

相关日志

发表评论