-
-
[旧帖] [求助]内存中数据定位的问题 0.00雪花
-
发表于: 2009-6-12 09:07 1751
-
首先第一个问题是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这样
也是可行的,用前面的方法有什么有点呢?
假如我着段程序是这样的
10018001 60 pushad
10018002 E8 00000000 call PcMain01.10018007//自定位
10018007 5D pop ebp//EBP的值为本行地址
这样的话EBX就是10018001了,哦还要说明一下我这时候也把程序的入口该成100018001了,pop ebp后EBP就是10018007了,这样的话是怎么样理解呢?
问题有点多,谢谢大家指教。
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这样
也是可行的,用前面的方法有什么有点呢?
假如我着段程序是这样的
10018001 60 pushad
10018002 E8 00000000 call PcMain01.10018007//自定位
10018007 5D pop ebp//EBP的值为本行地址
这样的话EBX就是10018001了,哦还要说明一下我这时候也把程序的入口该成100018001了,pop ebp后EBP就是10018007了,这样的话是怎么样理解呢?
问题有点多,谢谢大家指教。
赞赏
他的文章
- 杀毒软件的虚拟机调试会真的去执行被分析文件吗? 3156
- EXE文件插入系统进程用的那些关键API啊 3060
- [求助]这段代码如何实现的反调试? 3563
- [求助]DIY系统服务遇到的问题 3944
看原图
赞赏
雪币:
留言: