能力值:
( LV2,RANK:10 )
|
-
-
2 楼
搞颠倒了吧,上边的是变形后的
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
没颠倒call yyyyyyyy里面有几百行变形乱序的代码 这是TTP里面的乱序变形
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
一般是在函数入口点处修改,用一个call调用 直接到自己的代码处 执行完自己的程序在回来执行原程序的代码。 感染型病毒一般这样干 也不排除别的
call调用里面主要是自己的代码,一般是加密的。但是他要执行自己的代码肯定得解密。所以你要分析call里面的循环部分(一般就是解密函数)。
Note:
直接用OD加载 进call里面,动态调试 或者IDA用idc脚本或者python都是可以的。
我一般是用OD解密完了再dump出来 用IDA加载分析。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
貌似没有理解我的意思(或者是我理解错了)
加密前(5个字节):
pop ecx
pop ecx
test esi,esi
jnz xxxxxxxx
加密后(5个字节):
call yyyyyyyy
现在的问题是在没有知道加密前的代码的前提下,通过写代码将加密前的代码:
pop ecx
pop ecx
test esi,esi
jnz xxxxxxxx
给识别出来
(注意:实际的运行中会根据esi的值 进过一系列的运算到不同的地址,然后通过retn跳出call yyyyyyyy,call的内部不会出现jnz xxxxxxxx这一句的 ,像这样的test jnz这样的指令识别比较麻烦的,call的内部影响标志寄存器的指令非常多)
像这样普通的代码被加密的有上百处,不可能每处都用IDA分析呀
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
|
|
|