编辑一下 怎么变成求职格式了
Shielden主程序使用Safengine NetLicensor v2.0.4.0保护.以下分析可能对SE其他版本也同理.
1.Anti:
S兄贴了篇Bypass anti分析,原理很透彻了.我补充一下.有点啰嗦,大侠们请跳过.
SE反调试的几个选项全部是ANTI,可以直接干掉线程,我看了一下主程序,后面也没发现会出问题,当然我没有完整的加一次壳来测试,加壳过程会不会出问题,也无法保证.一开始的时候可以改CreateThread,直接返回,到OEP的时候再取消修改,否则程序里的线程也无法创建.比如Shielden主程序拖放试练品进入而创建的PE分析线程.如果不取消,将会看到Shielden界面灰色没反应.
干掉诸如检测REGMON等等线程后,主线程里依然有不少ANTI.体现在对DRX的积极检测.壳会检测TlsValue与DR0~DR3之和是否相当,会mov r32,[r32]通过设置r32为DRX来构造80000004异常,S兄的文章提到过了.当发现不相等或是没出异常,那么壳就获知当前状态为被调试.对第一条S兄采取的办法是在GetThreadContext的时候清掉DRX,并清掉TlsValue.对第二条则自己构造了一个异常.实际上壳在许多地方会进行第二条比较,比较的地址也不同,所以S兄给出的方法可以顺利到达OEP.但是一旦断下之后,在诸如IAT调用之类的与壳通信的地方,又会被壳检测到.因为可能这里出现了另外一条mov r32,[r32].而且r32是随机的,不同试练品里不同.DR0~DR3这4个DWORD,不同的试练品也是不同的.
解决办法有两个:
1>.OD在F2下断并断下的时候,会无情的清掉DRX.所以还是改改OD这个执拗习惯吧.
修改OD:
<0042EA22>
mov ecx,dword ptr ds:[4D8D70]
mov esi,400
mov eax,dword ptr ds:[4D8D8C]
xor eax,eax
mov edx,dword ptr ds:[4D8DA8]
mov edx,4D8D78
mov ecx,dword ptr ds:[4D8DC4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
<0042EA22>
jmp 004AF645
<004AF645>
pushfd
cmp dword ptr ds:[4D8D70],0
jnz @L00000001
cmp dword ptr ds:[4D8D8C],0
jnz @L00000001
cmp dword ptr ds:[4D8DA8],0
jnz @L00000001
cmp dword ptr ds:[4D8DC4],0
jnz @L00000001
mov ecx,dword ptr ds:[4D8D70]
mov esi,400
mov eax,dword ptr ds:[4D8D8C]
xor eax,eax
mov edx,dword ptr ds:[4D8DA8]
mov edx,4D8D78
mov ecx,dword ptr ds:[4D8DC4]
jmp @L00000002
@L00000001:
mov ecx,dword ptr ds:[4D8D70]
mov esi,400
mov dword ptr ds:[ebx+4],ecx
mov eax,dword ptr ds:[4D8D8C]
mov dword ptr ds:[ebx+8],eax
xor eax,eax
mov edx,dword ptr ds:[4D8DA8]
mov dword ptr ds:[ebx+C],edx
mov edx,4D8D78
mov ecx,dword ptr ds:[4D8DC4]
mov dword ptr ds:[ebx+10],ecx
@L00000002:
popfd
jmp 0042EA51
9C810C24000100009D0F31
push api
pushfd
inc [esp+8] ;6字节的调用有这句,5字节的则没有
popfd
retn
006D41A3 E8 0F000000 call 006D41B7 ; 006D41B7
006D41A8 90 nop
006D41A9 90 nop
006D41AA 90 nop
006D41AB 90 nop
006D41AC 8B0D A8416D00 mov ecx,dword ptr [6D41A8]
0075F52C E8 AFCFF9FF call 006FC4E0 ; 006FC4E0
0073F1BC FF56 8B call dword ptr [esi-75]
0073F1BF 90 nop
0073F1C0 8B06 mov eax,dword ptr [esi]
0073F1C2 5E pop esi
0073F1C3 E8 39D1FBFF call 006FC301 ; 006FC301
0073F1C8 8BF8 mov edi,eax
0073F1CA 3B3E cmp edi,dword ptr [esi]
0073F1CC 74 3F je short 0073F20D ; 0073F20D
0050852E > $ E8 4D950000 call 00511A80 ; 00511A80
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)