能力值:
( LV7,RANK:110 )
|
-
-
2 楼
会不会是打错啦
|
能力值:
( LV9,RANK:140 )
|
-
-
3 楼
mov ebx,[esi].AddressOfNames
add ebx,_hModule
xor edx,edx
.repeat
push esi
mov edi,[ebx]
add edi,_hModule
mov esi,_lpszApi
mov ecx, @dwStringLength
repz cmpsb
.if ZERO?
pop esi
jmp @F
.endif
pop esi
add ebx,4
inc edx
.until edx >= [esi].NumberOfNames
jmp _Error
这里不对
mov ecx, @dwStringLength
ecx里传的长度应该中@dwStringLength+1.
比较字符串要有结尾
不然"GetProcAddress"和"GetProcAddress123456789"不是一样啦?
|
能力值:
( LV9,RANK:140 )
|
-
-
4 楼
我测试了一下。。。果然是的
比较正确后停在这里
0040111E |. 5E |pop esi ; kernel32.77094DA8
而这时所得到的函数并不是GetProcAddres。。。db edi给你看看
7709B240 47 65 74 50 72 6F 63 65 73 73 41 66 66 69 6E 69 GetProcessAffini
7709B250 74 79 4D 61 73 6B 00 47 65 74 50 72 6F 63 65 73 tyMask.GetProces
所以。你这代码得到的是GetProcessAffinityMask的地址
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我昨天经过仔细比对,终于发现了错误的地方!楼上的说法是错的,其实是我把这里shl eax,2打成shl eax,1。。。不过还是谢谢你的回答哈!我马上去结贴!
|
|
|