首页
社区
课程
招聘
[求助]LEA指令和OFFSET指令
发表于: 2010-5-27 11:50 4216

[求助]LEA指令和OFFSET指令

2010-5-27 11:50
4216
一段代码如下:

.586p  
.model tiny
.........
MyCode  segment byte  use32 
EXE_NAME db 'C:\npd.exe',0 

.............

[COLOR="Red"]lea edx,DWord ptr EXE_NAME[/COLOR]
..........


目的就是取字符串EXE_NAME的地址到edx
发现将红色部分替换为下面三种:

1.lea edx,DWord ptr EXE_NAME

或者2. mov edx,offset EXE_NAME

3.考虑需要重定位

GetADD:
     	pop edx  ;这条语句将l1在内存中的真正地址存放在edx寄存器中
       	;lea edx,[edx+(EXE_NAME-l1)] ;这时edx中存放EXE_NAME在内存中的真实地址
	sub edx,offset GetADD		;计算差值
     	add edx,offset EXE_NAME		;EXE_Name的实际地址


到运行的时候调试都被替换为以下代码:

7ffe09f1      inc ebx
7ffe09f2      cmp bl,byte ptr ds:[esi+ebp*2+0x70]
7ffe09f6      js .+0x000065 (0x7ffe0a60),not taken
7ffe09fb      add byte ptr ss:[ebp+0x1fb15],cl
7ffe0a01      add byte ptr ds:[ebp+0x68006a12],cl
7ffe0a07      movsb byte ptr es:[edi],byte ptr ds:[esi]
7ffe0a08      add byte prt ds:[eax],al
7ffe0a0a      add byte ptr ds:[edx+0x2],ch


完全搞不懂什么意思,麻烦各位大大帮我看看~~

[招生]系统0day安全班,企业级设备固件漏洞挖掘,Linux平台漏洞挖掘!

上传的附件:
  • 1.jpg (123.77kb,79次下载)
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//