第一步:
病毒的二进制映像被装载到IDA中,从程序的入口点开始
很明显,在调用函数call命令里的地址,没什么意义,但它给了我们一个提示,它是加密代码的所在。
第二步:
我们生成一个IDC程序来模仿解密代码:
static decrypt(from, size, key ) {
auto i, x; // we define the variables//定义变量
for ( i=0; i < size; i=i+1 ) {
x = Byte(from); // fetch the byte//取原始代码
x = (x^key); // decrypt it//解密
PatchByte(from,x); // put it back//放回解密代码
from = from + 1; // next byte//下一字节
}
}
我们保存它,并使用快捷键F2来装载它。
第三步
我们使用shift+F2来执行这段IDC程序,注意输入相应参数,注意其中的起始点地址。
现在代码已经解密了。
第四步
在解密代码的起始未知,我们使用快捷键C,将其翻译为汇编代码。