能力值:
( LV5,RANK:70 )
|
-
-
2 楼
给点提示........给点提示......
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
直接用寄存器跳转不就是了,这么麻烦~
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
分页,看长跳还是短跳,你自己拿个PE来反汇编下,占的字节都不同,短跳占2个,长的站满5个,我不知道是为什么,但是就是这样做的
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
lea eax,ntopenprocess
add eax,19
jl eax
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
如果我没理解错, NtOpenProcess并不你驱动中实现的函数,而导入的系统函数, 此时NtOpenProcess是一个指针,而不是一个地址标签(label), jl 后面只能接地址标签。你的问题可以如下解决:
__asm {
......
jl onl
......
onl:
mov eax,NtOpenProcess
add eax,0x19
jmp eax
}
这个方法有一个前提:eax对于NtOpenProcess+0x19处的代码来说是无用的,否则,你需要另选一个寄存器,如果找不到合适的,则需要使用全局变量,倒更简单一些:
|
|
|