给软虫折腾的不能睡觉,那么,只好爬起来继续,贴上来的东西,没法看,看压缩包吧,我要杀呢softworm.
Region01:004CA817 push edx---------- 这样的对称句中,堆栈操作那么肯定可以拿掉 *
Region01:00477AD6 mov edx, 0 | 对称堆栈操作,edx属于无用寄存器,被用,保留看 +
Region01:00477ADB mov eax, 95BFh | 不明,保留
Region01:00477AE0 add edx, edi | 对称堆栈操作,edx属于无用寄存器,被用,保留看 +
Region01:00477AE2 sub esp, 4------|-- +-对称句,拿掉 *
Region01:00477AE8 mov [esp], ebx--| |---- 对称句,拿掉 *
Region01:00477AEB mov ebx, 0 | | | 对称操作,ebx属于无用寄存器,被用,保留看 +
Region01:00477AF0 add ebx, edx | | | 对称操作,edx,ebx属于无用寄存器,被用,保留看+
Region01:00477AF2 mov esi, [ebx] | | | 对称操作,edx,ebx属于无用寄存器,被用,保留看+
mov esi,[edi]| | |
Region01:00477AF4 and ah, bh | | | 不明,保留
Region01:00477AF6 mov ebx, [esp]--| |---- +-对称句,拿掉 *
Region01:00477AF9 and ch, cl | | 不明,保留
Region01:0044DADB add esp, 4------|-- 对称句,拿掉 *
Region01:0044DADE pop edx---------- 这样的对称句中,那么肯定可以拿掉 *------而从简单判定来看,假设堆栈对称为这就是一个VM expand段.
上下分析,如果设想第一次为堆栈对称操作为一个 VM expand段,那么,第一轮扫描排除掉的对称操作有6句,
堆栈操作中,EDX应该是属于无用寄存器,那么,中间给使用判为过渡寄存器,给疑问
如果对称的寄存器为无用寄存器,中间又使用了,如果假设成立,那么esp,ebx都属于疑问寄存器.
将疑问寄存器edx,esp,ebx的句子都提出来,那么整理出来
成了如下的句子
mov edx,0
add edx,edi
mov ebx,0
add ebx,edx
mov esi,[ebx]
整理后,为 mov esi,[edi]
剩下的不明东西???你说它干什么,我们找找绿色和平组织会告诉我们干什么 :)
下面的如法炮制,那么结果呢 ???
Region01:0044DADF mov eax, 73D5h
Region01:0044DAE4 push ebx-------------
Region01:0044DAE5 mov ebx, 0Ch |
Region01:0044DAEA add ebx, esi |
Region01:0044DAEC sub ax, cx |
Region01:0044DAEF sub esp, 4 |
Region01:0044DAF5 mov [esp], edx |
Region01:0043AAAA and eax, edx |
Region01:0043AAAC mov edx, 0 |
Region01:0043AAB1 xor ah, ch |
Region01:0043AAB3 add edx, ebx |
Region01:0043AAB5 mov cl, [edx] |
mov cl,[esi+0Ch]|
Region01:0043AAB7 shr al, 3 |
Region01:0043AABA mov edx, [esp] |
Region01:0043AABD add esp, 4 |
Region01:0043AAC0 mov al, dl |
Region01:0043AAC2 pop ebx-------------