社区
汇编语言
帖子详情
JMP 后面的地址是怎么来的?
fbiboss
2008-02-25 08:59:01
有程序中用MyAdr := VirtualAllocEx(ProcessHandle, nil, 1024, MEM_COMMIT, PAGE_EXECUTE_READWRITE);分配了一段内存,内联汇编中怎么用MyAdr?
是不是可以直接使用?
...全文
294
9
打赏
收藏
JMP 后面的地址是怎么来的?
有程序中用MyAdr := VirtualAllocEx(ProcessHandle, nil, 1024, MEM_COMMIT, PAGE_EXECUTE_READWRITE);分配了一段内存,内联汇编中怎么用MyAdr? 是不是可以直接使用?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huangguo
2008-10-24
打赏
举报
回复
最近在学习PE文件结构,编程尝试修改程序入口地址AddressOfEntryPoint,对里面的JMP不了解,看了你们的发言,让我茅塞顿开。谢谢!
智能卡_Snooper
2008-02-25
打赏
举报
回复
俺手头没有OD,可能是那样
fbiboss
2008-02-25
打赏
举报
回复
是不是OD已经把 JMP 后面的地址变成绝对地址了?
智能卡_Snooper
2008-02-25
打赏
举报
回复
你要看的不是他的助记符,而是要看的是二进制代码,俺对32位不懂,只能用16位来举例了。
在16下,当前命令地址是0100,假设此条指令是jmp 0120,则此条命令长度为02,下一条指令地址为0102,从下一条要跳到0120相差 0120 - 0102 = 001e,所以jmp 0120的指令的实际存储的就是 eb 1e,如果你修改为 eb 1d,再反汇编代码就是变成jmp 011f
fbiboss
2008-02-25
打赏
举报
回复
用OD看到的JMP后面的地址是绝对地址吧????
智能卡_Snooper
2008-02-25
打赏
举报
回复
jmp的地址应该是目标地址与下一条地址相对偏移吧?比如在16位汇编下,jmp到下一条,其偏移量为0.
fbiboss
2008-02-25
打赏
举报
回复
我把一个进程的一条指令改成JMP MYADR,但是在MYADR那不是我申请的那段内存呀
是不是一定要先移到EAX,再JMP EAX
pig4210
2008-02-25
打赏
举报
回复
sure.
__asm
{
mov eax,MyAdr
}
as you wish.
BMCRNET
2008-02-25
打赏
举报
回复
没有用过
内联汇编
Jmp 跳转到一个内存地址,
应该是可以的
相关推荐
hook微信的必备知识储备
1,在hook的时候我们需要篡改内存内容,那么内存里的数据是怎么来的呢? 这内存里的内容 E8 7F250001是怎么来的呢? E8的意思就是call E9就
jmp
后面
的数字7F250001是倒着放进去的
地址
偏移量 计算 709BC2CE-6F9B9D4A-5=100257f 709BC2CE是call函数的
地址
6F9B9D4A是现在的
地址
5是5个字节,分别是 E8 7F 25 00 01 call或者
jmp
都遵循这个公式是 要跳转的
地址
-现在的
地址
-5,然后将结果倒着放进去 ...
JMP
caLL 机器码
几种跳转指令和对应的机器码 0xE8 CALL
后面
的四个字节是
地址
0xE9
JMP
后面
的四个字节是偏移 0xEB
JMP
后面
的二个字节是偏移 0xFF15 CALL
后面
的四个字节是存放
地址
的
地址
0xFF25
JMP
后面
的四个字节是存放
地址
的
地址
0x68 PUSH
几种跳转指令和对应的机器码
几种跳转指令和对应的机器码 0xE8 CALL
后面
的四个字节是
地址
0xE9
JMP
后面
的四个字节是偏移 0xEB
JMP
后面
的二个字节是偏移 0xFF15 CALL
后面
的四个字节是存放
地址
的
地址
0xFF25
JMP
后面
的四个字节是存放
地址
的
地址
0x68 PUSH
后面
的四
跳转指令与机器码
跳转指令和对应的机器码 0xE8 CALL
后面
的四个字节是
地址
0xE9
JMP
后面
的四个字节是偏移 0xEB
JMP
后面
的二个字节是偏移 0xFF15 CALL
后面
的四个字节是存放
地址
的
地址
0xFF25
JMP
后面
的四个字节是存放
地址
的
地址
0x68 PUSH
后面
的四个字节入栈 0x6A PUSH ...
Call和
JMP
硬编码 一些区别
0xFF15 CALL
后面
的四字节是存放
地址
的
地址
0xFF25
JMP
后面
的四字节是存放
地址
的
地址
0xE8 CALL
后面
四个字节是
地址
0xE9
JMP
后面
四个字节是偏移0x68 PUSH
后面
的四个字节入栈0x6A PUSH
后面
的一个字节入栈 转载于:https://blog.51cto.com/13751543/2313400...
发帖
汇编语言
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
2.1w+
社区成员
4.1w+
社区内容
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-02-25 08:59
社区公告
暂无公告