手脱灰鸽子2007 Beta 2最新版

【软件名称】: 灰鸽子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载入 异常除"内存访问异常"外全部打勾
来到

[php]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[/php]

直接F9 运行

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

[php]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[/php]

看右下角

[php]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[/php]

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

shift +F9
大约22次出现硬盘标识了
注意看右下角

[php]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"[/php]

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

[php]<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[/php]

在013D2AE3 C3 RETN 下断点

然后alt+m查看内存窗口
在code处下内存访问断点
然后shift +f9
到这里

[php]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[/php]

直接F9飞到光明顶
哈哈

[php]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[/php]

直接脱壳后
用PEID一查
Borland Delphi 6.0 - 7.0

后续工作

用ImportRec和1.22的aspr插件修复后
程序运行正常

还没有评论,快来抢沙发!

发表评论

  • 😉
  • 😐
  • 😡
  • 😈
  • 🙂
  • 😯
  • 🙁
  • 🙄
  • 😛
  • 😳
  • 😮
  • emoji-mrgree
  • 😆
  • 💡
  • 😀
  • 👿
  • 😥
  • 😎
  • ➡
  • 😕
  • ❓
  • ❗
  • 70 queries in 0.405 seconds