分析一次地址跳转

来源:互联网 发布:淘宝无线端流量来源 编辑:程序博客网 时间:2024/05/22 11:47

jmp对应的二进制码有很多

jmp可以是短跳转、近跳转、远跳转、间接跳转等等,这里就讲最简单的。

实例一:

码农想找内核隐藏API-PspTerminateThreadByPointer,计算他的地址。

就那短跳转来说如下图所示,那么问题来了:nt!PspTerminateThreadByPointer的地址是如何确定的?


 

误区1E94CE7F9FF折合成人类语言就是跳转到偏移量为4CE7F9FF

windows内存是大端的,数据存储是倒过来的,因此是跳转到FFF9E74C

误区2:当前指令地址值4AEE6EB跳转到FFF9E74C

windows当前CPU指令执行到的指令,那么它的EIP指向下一跳指令也就是指向4AEE6F0

误区3:目标地址为4AEE6EB+FFF9E74C=104A8CE37

短跳转可以后跳自然可以前跳,因此后面的偏移量应该是一个有符号的,因此4AEE6EB+-618b4=41E2BE3C得到了正确的函数地址值

 

小结:可以通过公开API搜索内存特征码,并随后通过自己的计算来确定隐藏函数地址,这个在内核查找隐藏API是常用手法。

0 0
原创粉丝点击