内存中数据定位的问题

luo_raul 2009-06-09 06:20:36
首先第一个问题是pushad这个命令执行完后,EBX的值为10018000?
pop ebp执行完后EBP的值为10018006?
(见下面的命令)
10018000 60 pushad
10018001 E8 00000000 call PcMain01.10018006//自定位
10018006 5D pop ebp//EBP的值为本行地址


第二个问题是这样的:还是利用上面这段代码,假如在一个程序中的一个内存地址,打个比方是10019000,我想在这个地方写

入字节23,我用命令mov byte ptr ds:[ebp+(10019000-10018006)],23.因为这种方法是别人用的,我不明白的是EBP可以换成

别的寄存器吗,比如EBX,还有就是怎么样决定段地址是用DS而不是别的。通过自己试验直接mov byte ptr [10019000],23这样

也是可行的,用前面的方法有什么有点呢?

问题有点多,谢谢大家指教。
...全文
23 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanlingcg 2009-06-11
  • 打赏
  • 举报
回复
北斗壳啊?去看雪问去吧!
luo_raul 2009-06-10
  • 打赏
  • 举报
回复
谢谢大家的指教,我说一下,如上面那个所说“pushad这个命令执行完后,EBX的值为10018000?
pushad这个命令执行完后,EBX的值没改变啊,还是原来EBX的值啊!
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.不改变原值. "
假如我着段程序是这样的
10018001 60 pushad
10018002 E8 00000000 call PcMain01.10018007//自定位
10018007 5D pop ebp//EBP的值为本行地址
这样的话EBX就是10018001了,哦还要说明一下我这时候也把程序的入口该成100018001了,pop ebp后EBP就是10018007了,这样的话是怎么样理解呢?


nanlingcg 2009-06-09
  • 打赏
  • 举报
回复
补充:第二个问题的回答,前提是EBP的值是10018006。
nanlingcg 2009-06-09
  • 打赏
  • 举报
回复
大概在搞破解,学汇编的能搞这样的程序不可能这几个问题搞不清!
第一个问题。
pushad这个命令执行完后,EBX的值为10018000?
pushad这个命令执行完后,EBX的值没改变啊,还是原来EBX的值啊!
PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.不改变原值.

pop ebp执行完后EBP的值为10018006?
pop ebp执行完后EBP的值为多少不好说啊,
POP EBP 把当前ESP指向的堆栈以双字弹向EBP,仅你贴的这点我们也无法判断。如果你的“//EBP的值为本行地址 ”是解释未执行时的EBP的值,按常理猜测pop ebp执行后EBP的值应该发生了改变。但也不排除堆栈里弹出的也是10018006这个值。

第二个问题
mov byte ptr ds:[ebp+(10019000-10018006)],23和mov byte ptr [10019000],23执行结果是一样的。没优点,反而有点忽悠人.
EBP换成EBX也可以,但前提是EBX和EBP的值要是一样的。改成EBX后前面那个DS段前缀可以不要了。

EAX,EBX,ECX,EDX,EDI,ESI,一个8位数或者一个32位数作偏移地址默认段为DS(EDI在用于串处理中例外,默认为ES),
zhanglei042681 2009-06-09
  • 打赏
  • 举报
回复
对于第一个问题:
我不是很明白你的意思。
对于第二个问题:

ebp,ds 都可以用别的。

eg:mov byte ptr es:[ebx+(10019000-10018006)],23
你现在应该在flat mode 下,ds,es都为0
而mov byte ptr [10019000],23,在取memory 数据cpu时,若没有指定segment,cpu处理时,会使用default segment register ds。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧