swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:4720回复:35

想把一段汇编写到一块内存中去,怎么办?

楼主#
更多 发布于:2002-06-20 23:06
我有一段汇编代码,想要copy到一段内存中去,想让它能够执行,听说是要转化成二进制,可是我不知道怎么转?哪位知道,指点指点!
要编译吗?用masm32行吗?我想在win2000下执行!
zsb9527
驱动小牛
驱动小牛
  • 注册日期2002-05-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-20 23:32
可以的,只不过要注意里面变量的存取,需要自己定位。
请参考CIH前面的一部分。
小子,从今天开始,你就是华府的低等下人,9527就是你的终身代号。 [img]http://www.driverdevelop.com/forum/upload/zsb9527/2002-06-25_6.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2002-06-20 23:50
注意不要用绝对地址就可以了。
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-21 08:21
哪位能详细的说说,我对这些不太懂,不过正在学 :)
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-21 09:16
兄弟,你先好好看看我前面关于PE的教学文章。
很多东西得靠自己,别人无法完全帮你的
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-21 09:20
呵呵,谢谢老大指点,不过PE表我以前看过,也了解它的格式,不过并不深入,请问哪里有关系硬编码的文章,我想研究研究,呵呵!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-21 09:53
呵呵,谢谢老大指点,不过PE表我以前看过,也了解它的格式,不过并不深入,请问哪里有关系硬编码的文章,我想研究研究,呵呵!

没什么硬编码,汇编生成的就是机器码
比如你如果要把下面一段copy到内存里

addr_1:
  mov eax,ebx
  xor ecx,edx
  push edx
  pop edx
addr_2:
就可以这么干
  mov ecx,addr_2-addr_1
  lea esi,offset addr_1
  mov edi,offset dstaddr
  cld
  rep movsb

你地,明白地干活???
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-21 10:14
呵呵,我的不干活!

有点明白了,其实里面的还是汇编是吗?只不过地址都变成相对的。

那把汇编转换成二进制是什么意思?

怎么转,按字符转吗?象jmp j,m,p都转成ascii码吗?


///哇,老大不准打人
/小弟真的不会,才问出这种烂问题 :)
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-06-21 10:16
没办法,建议你先买本基本的汇编的书看看,你需要先掌握些基本的常识。目前你最好不要想写病毒,先写些小的汇编程序,看看它们是什么样再说。
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-21 10:50
好的 

//努力学习中...
zsb9527
驱动小牛
驱动小牛
  • 注册日期2002-05-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-06-21 11:25
建议:
    在Dos下写几个小汇编程序,然后用Debug一步一步的
    调试一下,你就会明白的。
小子,从今天开始,你就是华府的低等下人,9527就是你的终身代号。 [img]http://www.driverdevelop.com/forum/upload/zsb9527/2002-06-25_6.jpg[/img]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-06-21 11:28
是不是用softice调试源代码时,按F3看到的就是?
可是那些都是汇编呀,在内存里应该显示什么,机器码?
反正我用softice看内存的时候是真不明白,一片数字 :( hoho!!!
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-06-21 11:28
是不是用softice调试源代码时,按F3看到的就是?
可是那些都是汇编呀,在内存里应该显示什么,机器码?
反正我用softice看内存的时候是真不明白,一片数字 :( hoho!!!

你用VC打开一个exe,然后按F11,一步步运行看看
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-06-21 11:34
能看到汇编语句,但是按F11没反应
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-06-21 11:46
能看到汇编语句,但是按F11没反应

不知道了
你先把工具用熟吧
用Turbo Debugger试试
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
15楼#
发布于:2002-06-21 12:38
天!
真受不了你。
汇编跟二进制是一样的。
就拿debug来说吧
一般的格式是这样的
-u
0B10:0100 7419          JZ      011B
0B10:0102 8B0ED596      MOV     CX,[96D5]
0B10:0106 E313          JCXZ    011B
0B10:0108 B01A          MOV     AL,1A
那第一行来说吧
你看到的0B10:0100是地址,7419使这条指令的机器码,JZ 11B是汇编代码,程序运行的时候就只有机器码,汇编代码是调试器给你反编译出来方便观看的。

你现在明白?



zsb9527
驱动小牛
驱动小牛
  • 注册日期2002-05-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-06-21 13:11
 
是不是用softice调试源代码时,按F3看到的就是?
可是那些都是汇编呀,在内存里应该显示什么,机器码?
反正我用softice看内存的时候是真不明白,一片数字  hoho!!!


刚开始的时候最好还是用Debug,
SoftIce包括了Debug的所有命令
小子,从今天开始,你就是华府的低等下人,9527就是你的终身代号。 [img]http://www.driverdevelop.com/forum/upload/zsb9527/2002-06-25_6.jpg[/img]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-06-21 13:20
谢谢fracker,谢谢9527,谢谢老大

如果我跳转到我自己的函数里,比如跳到myhookprotocol里,
汇编应该是这样的:jmp myhookprotocol(对吗?呵呵),
那么机器码里myhookprotocol函数用它的地址就行了吗?

hoho,可惜我的分都给了,不过没关系,一会我再开一个,呵呵
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-06-21 13:45
谢谢fracker,谢谢9527,谢谢老大

如果我跳转到我自己的函数里,比如跳到myhookprotocol里,
汇编应该是这样的:jmp myhookprotocol(对吗?呵呵),
那么机器码里myhookprotocol函数用它的地址就行了吗?

hoho,可惜我的分都给了,不过没关系,一会我再开一个,呵呵

跳转的不是地址,是偏移!!!
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
swift
驱动中牛
驱动中牛
  • 注册日期2001-07-26
  • 最后登录2007-05-09
  • 粉丝0
  • 关注0
  • 积分70分
  • 威望7点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-06-22 17:16
偏移是什么意思?
我的函数的地址不也是偏移吗?
你指的是相对于什么的偏移?
上一页
游客

返回顶部