病毒名称(中文):
病毒别名:
威胁级别:
★★☆☆☆
病毒类型:
黑客程序
病毒长度:
244736
影响系统:
Win9xWinNT
病毒行为:
无
Obsidium1.0.0.61脱壳之引入表修复
1.下断点VirtualAlloc+?(该壳有反调试功能,所以最好把断点设API地址+几个字节的位置)
2.Ctrl+F9返回用户进程,下硬件执行断点到3A78A0
注:要得到上面3A78A0这个地址可以根据以下步骤得到:
A.在上次Dump出来的程序中找一个API调用如:
0A21398movzxeax,[ebp+var_141]
iatRegio:00A2139Ftesteax,eax
iatRegio:00A213A1jzshortloc_A213AB
iatRegio:00A213A3push0
iatRegio:00A213A5callds:dword_A64114(这里就是一个API调用,从IDA里可以知道
A64114里存放的是一个地址,这个例子里是3A8394)
用OD下内存写入断点在3A8394处,F9执行,然后搜索指令:testwordptrds:[esi],20可以得到上面的地址
003A78A066:F7062000TESTWORDPTRDS:[ESI],20把这里的20改成3
003A78A57446JESHORT003A78ED
003A78A766:F7060200TESTWORDPTRDS:[ESI],2
003A78AC751FJNZSHORT003A78CD
003A78AE66:C7060400MOVWORDPTRDS:[ESI],4
003A78B38B4514MOVEAX,DWORDPTRSS:[EBP+14]
003A78B66A01PUSH1
003A78B86A00PUSH0
003A78BAFF7604PUSHDWORDPTRDS:[ESI+4]
003A78BD6A00PUSH0
003A78BFFF7518PUSHDWORDPTRSS:[EBP+18]
003A78C2FF5040CALLDWORDPTRDS:[EAX+40]
003A78C585C0TESTEAX,EAX
003A78C77439JESHORT003A7902
003A78C98907MOVDWORDPTRDS:[EDI],EAX
003A78CBEB20JMPSHORT003A78ED
003A78CD66:C7060400MOVWORDPTRDS:[ESI],4
003A78D28B4514MOVEAX,DWORDPTRSS:[EBP+14]
003A78D50FB75602MOVZXEDX,WORDPTRDS:[ESI+2]
003A78D96A01PUSH1
003A78DB52PUSHEDX
003A78DC6A00PUSH0
003A78DEFF7604PUSHDWORDPTRDS:[ESI+4]
003A78E1FF7518PUSHDWORDPTRSS:[EBP+18]
003A78E4FF5040CALLDWORDPTRDS:[EAX+40]
003A78E785C0TESTEAX,EAX
003A78E97417JESHORT003A7902把这里的指令NOP掉
003A78EB8907MOVDWORDPTRDS:[EDI],EAX
003A78ED83C608ADDESI,8
003A78F083C704ADDEDI,4
003A78F3FF4D08DECDWORDPTRSS:[EBP+8]
003A78F6^75A8JNZSHORT003A78A0
003A78F833C0XOREAX,EAX
003A78FA40INCEAX
003A78FB5FPOPEDI
003A78FC5EPOPESI
003A78FD5BPOPEBX
003A78FEC9LEAVE
003A78FFC21400RETN14
003A790233C0XOREAX,EAX
003A79045FPOPEDI
003A79055EPOPESI
003A79065BPOPEBX
003A7907C9LEAVE
003A7908C21400RETN14
3.
003A778DFF4DFCDECDWORDPTRSS:[EBP-4]这里为当前程序加载的DLL的个数
当[EBP-4]为0时表示所有的API已经处理完了
003A7790EB03JMPSHORT003A7795
003A779215349A0F85ADCEAX,850F9A34
003A779721FDANDEBP,EDI
003A7799FFFF???;未知命令
003A779BEB02JMPSHORT003A779F
003A779DBFFE33C0EBMOVEDI,EBC033FE
003A77A20226ADDAH,BYTEPTRDS:[ESI]
003A77A4045FADDAL,5F
用F7再往下走几步可以看到如上指令
003A7795^0F8521FDFFFFJNZ003A74BC这里跳往处理下一个DLL的API
003A779BEB02JMPSHORT003A779F所以在这里下断点,F9就可以了
003A779DBFFE33C0EBMOVEDI,EBC033FE
003A77A20226ADDAH,BYTEPTRDS:[ESI]
003A77A4045FADDAL,5F
003A77A65EPOPESI
003A77A75BPOPEBX
003A77A8C9LEAVE
003A77A9C3RETN
4.当所有的API处理完成后,把A64000起开始1000H数据复制出来
并贴到上次Dump出来的文件的VA:A64000=OFFSET:51600处
5.最后用ImportREConstructor修复
在RVA处填664000
点GetImport
剪掉几个无效的涵数。KO!!!!!
注:
因该壳采StolenCoder技术(即把原程序中的部分代码移到壳中执行了),目录这个程序还是不能运行
但对于分析已经足够了。