bc $RESULT
gpa "CreateThread","kernel32.dll"
bp $RESULT
eob tmp1
esto
tmp1:
bc $RESULT
sto
sto
var variant
mov variant,ebp
add variant,18
mov [variant],#04000000#
//修改API参数,让线程挂起来
rtu
sto
sto
mov eax,0
/*
修改下面的跳转,防止程序anti time
00497215 TEST EAX,EAX
00497217 JE SHORT Armadill.00497231
00497219 CALL DWORD PTR DS:[<&KERNEL32.GetTickCou>; kernel32.GetTickCount
0049721F CMP EAX,DWORD PTR SS:[EBP-114]
00497225 JNB SHORT Armadill.00497231
00497227 PUSH 1
00497229 CALL DWORD PTR DS:[<&KERNEL32.Sleep>] ; kernel32.Sleep
0049722F JMP SHORT Armadill.0049720E
*/
//////////////////////////////////////////////////////////////////
//anti OutputDebugStringA 修复
//////////////////////////////////////////////////////////////////
var setc1
gpa "OutputDebugStringA","kernel32.dll"
mov address,0
mov setc1,$RESULT
bp setc1
eob setcode1
run
setcode1:
inc address
mov [eax],#00000000#
cmp address,2
je setcode2
run
setcode2:
rtu
gpa "GetVersion","kernel32.dll"
bp $RESULT
eob tmp2
run
tmp2:
bc $RESULT
rtu
gpa "GetPrivateProfileStringA","kernel32.dll"
bp $RESULT
eob tmp3
run
tmp3:
bc $RESULT
rtu
gpa "sprintf","msvcrt.dll"
bp $RESULT
eob tmp4
run
tmp4:
rtu
bc $RESULT
rtr
sto
gpa "memset","msvcrt.dll"
bp $RESULT
eob lbl1
esto
lbl1:
rtu
rtr
sto
mov address,0
gpa "RtlLeaveCriticalSection","ntdll"
bp $RESULT
eob lbl7
run
lbl7:
inc address
cmp address,2
je lbl8
run
lbl8:
bc $RESULT
mov address,0
gpa "memset","msvcrt.dll"
bp $RESULT
eob lbl2
run
lbl2:
bc $RESULT
rtu
mov address,eip
add address,2af
bp address
eob lbl9
run