M**2 Trojan的完全修改——脱壳+特征码修改+PEDIY

来源: 作者: 2007-10-12 出处:pcdog.com

.net  office  xml  杀毒软件  注册表  
下一页 1 2 

M**2 Trojan的完全修改——脱壳+特征码修改+PEDIY

作者:tankaiha[NE365][FCG]

日期:2004.11.29

主页:http://www.vxer.net

声明:本文只为技术研究,监于其可能的危害性,讲得很笼统,且作者不提供任何程序和代码!

      

       一、程序运行流程

M**2生成器生成M**2 Trojan文件,运行后,程序将自身复制到Windir/system32/目录下,文件名为预先设定(假设为aaa.exe),并删除原文件。然后启动新进程,从文件内部数据提取并生成aaa.dll。同时修改注册表HLM_SOFTWARE_Microsoft_Windows_CurrentVersion_Run。并进入正常循环,进行Hook

 

二、修改目标

杀毒软件对aaa.exeaaa.dll扫描时都会报警。我们的目标,完全躲过杀毒软件的追杀,并正常运行。

 

三、主文件脱壳+去除自校验

主程序(aaa.exe)PEiD查壳为UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo [Overlay],手动脱时断点下在popad处,并用RecImport修复引入表。(详细见fly有关的脱壳文章)

00415218     FF96 E85E>call dword ptr ds:[esi+15EE8]

0041521E     61        popad

0041521F   - E9 A418FF>jmp aaa.00406AC8

 

脱壳并修复引入表后,双击程序,程序不能正常运行。用Ollydbg进行跟踪,在如下处有跳转:

00404F4B     53        push ebx

00404F4C     E8 9BF5FF>call <jmp.&KERNEL32.ReadFile>

00404F51     85C0      test eax,eax

00404F53     75 07     jnz short mir_Unpa.00404F5C

在该指令前,程序已调用SetFilePointer将指针指向文件尾,读出文件尾部的较验数据,并进行判断。解决方法,将未脱壳文件的文件尾部分字节粘贴到已脱壳文件尾,再次运行程序,程序能正常运行。

 

四、dll文件的脱壳

关闭进程,对system32目录下生成的aaa.dll查壳,显示仍旧是UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo [Overlay],关于dll脱壳的详细过程请参照fly大侠的文章。用Ollydbg手动脱壳时,重定位表位于003C73FE处,大小BD2,用UPXAngela修复,修复后的文件偏移定位11000处,并在脱壳过的文件中将Relocation表的数据进行修改。

输入表修复时,跟踪到程序入口并选择一个API调用跟踪进去,得到地址003C20C8开始,大小178个字节,用RecImport修复。

程序的入口改为EFF4。至此,dll文件的修改完成。

 

五、对dll文件进行特征码定位并修改

用特征码定位器对dll文件定位特征码,定位和修改的方法略。

 

下一页 1 2 
上一篇:PGP的安全性
下一篇:产品激活技术问答