【D01E09】电子管 反破解教程之九【用API检测SOD】
本帖最后由 dianziguan 于 2013-8-5 17:59 编辑这个cm是逆向人家的,里面调用了两个未公开的api来检测sod.
它的运行结果是如果没用od+sod调试,显示未发现sod,反之显示发现sod!
本程序的玩法是不允许修改程序的任何字节,只通过修改od+sod的配置,来通过检测,在od+sod下按F9,显示未发现sod!
为方便大家研究,直接把源码贴上来。写的比较乱,大家别笑话我。
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\advapi32.inc
includelib \masm32\lib\advapi32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \MASM32\LIB\oleaut32.lib
include \MASM32\include\oleaut32.inc
.data
var14 dd 0
var10 dd 0
var0c dd 4
var18 dd 0
AppName db "注册程序,(C)电子管 2012.08.05",0
nof_1 db "发现sod!",0
find_1 db "未发现sod!",0
fntdlldb "ntdll.dll",0
zwset1db "ZwSetInformationProcess",0
zwq1db "ZwQueryInformationProcess",0,0
.code
start:
push edx
call st_1
cmp eax,0
jz st_0
invoke MessageBox,NULL,ADDR nof_1,ADDR AppName,MB_OK
retn
st_0:
invoke MessageBox,NULL,ADDR find_1,ADDR AppName,MB_OK
retn
st_1:
sub esp,10h
push ebx
push esi
xor esi,esi
push offset fntdll ; /FileName = "ntdll.dll"
call LoadLibraryA ; \LoadLibraryW
mov ebx,eax
cmp ebx,esi
je loc_3
;mov esi,GetProcAddress ;kernel32.GetProcAddress
push ebp
push edi
push offset zwset1 ; /ProcNameOrOrdinal = "ZwSetInformationProcess"
push ebx ; |hModule
call GetProcAddress ; \GetProcAddress
push offset zwq1 ; /ProcNameOrOrdinal = "ZwQueryInformationProcess"
push ebx ; |hModule
mov ebp,eax
call GetProcAddress
mov esi,eax
mov eax,var0c
push eax
lea ecx,var10
push ecx
push 1Fh
push -1
call ebp
lea edx,var0c
push edx
push 4
lea eax,var10
push eax
push 1Fh
mov var0c,ebp
push -1
call esi ;ZwQueryInformationProcess
mov edx,var10
cmp edx,0
jnz loc_1
lea ecx,var0c
push ecx
push ebp
lea edx,var18
push edx
push7
mov var0c,ebp
push -1
call esi ;ZwQueryInformationProcess
mov ecx,var18
cmp ecx,0
je loc_2
loc_1: mov ecx,1
mov var14,ecx
loc_2: push ebx ; /hLibModule
call FreeLibrary ; \FreeLibrary
mov eax,var14
pop edi
pop ebp
pop esi
pop ebx
add esp,10h
retn 4
loc_3: mov eax,esi
pop esi
pop ebx
add esp,10h
retn 4
end start
看来已过... SxAni丶 发表于 2013-8-5 17:58 http://www.52pojie.cn/static/image/common/back.gif
看来已过...
你这个od没有sod插件,不算数的。
原版od就是这样的,本程序不检测od,只检测sod.
弱弱的问一下,这个是SOD吗? 本帖最后由 txke 于 2013-8-5 18:07 编辑
我的也过了
单纯的F8
看看我珍藏的逆天od能不能过sod kanan!~~~~~~~ 直接就过了~~~{:301_1008:} 四裤全输 发表于 2013-8-5 20:28 static/image/common/back.gif
直接就过了~~~
试试这个
http://www.52pojie.cn/thread-207864-1-1.html
页:
[1]
2