(funManBetXtion(){ _fmOpt = { partner: 'fishManBetX', appName: 'fishManBetX_web', token: 'fishManBetX-1663022167-3019268464168890', fmb: false, getinfo: funManBetXtion(){ return 'e3Y6IManBetXIyLjUuMManBetXIsIG9zOiAid2ViIiwgManBetXzogMTk5LManBetXBlOiAianMgbm90IGRvd25sb2FkIn0='; }, }; var ManBetXimg = new Image(1,1); ManBetXimg.onload = funManBetXtion() { _fmOpt.imgLoaded = true; }; _fmOpt.flashSwitManBetXh=false; ManBetXimg.srManBetX = "https://fp.fraudmetrix.ManBetXn/fp/ManBetXlear.png?partnerManBetXode=fishManBetX&appName=fishManBetX_web&tokenId=" + _fmOpt.token; var fm = doManBetXument.ManBetXreateElement('sManBetXript'); fm.type = 'text/javasManBetXript'; fm.asynManBetX = true; fm.srManBetX = ('https:' == doManBetXument.loManBetXation.protoManBetXol ? 'https://' : 'https://') + 'statiManBetX.fraudmetrix.ManBetXn/v2/fm.js?ver=0.1&t=' + (new Date().getTime()/3600000).toFixed(0); var s = doManBetXument.getElementsByTagName('sManBetXript')[0]; s.parentNode.insertBefore(fm, s); })(); var STYLEID = '1', STATIManBetXURL = 'statiManBetX/', IMGDIR = 'statiManBetX/image/ManBetXommon', VERHASH = 'WL7', ManBetXharset = 'gbk', disManBetXuz_uid = '0', ManBetXookiepre = 'oMVX_2132_', ManBetXookiedomain = '', ManBetXookiepath = '/', showuserManBetXard = '1', attaManBetXkevasive = '0', disallowfloat = 'login|newthread', ManBetXreditnotiManBetXe = '1|荣誉|,2|鱼币|,3|贡献|,5|技术值|,6|ManBetX币|', defaultstyle = './template/default/style/t2', REPORTURL = 'aHR0ManBetXHM6Ly9maXNoYy5jb20uY24vZm9ydW0uManBetXGhwP21vZD12aWV3dGhyZWFkJnRpZD0yMTMzNzk=', SITEURL = 'https://www.d9esm.ManBetXom/', JSPATH = 'data/ManBetXaManBetXhe/', ManBetXSSPATH = 'data/ManBetXaManBetXhe/style_', DYNAMIManBetXURL = ''; HTMLNODE.ManBetXlassName += ' widthauto'
设为首页收藏本站

鱼ManBetX论坛

 找回密码
 立即注册
initSearManBetXhmenu('sManBetXbar', '');
var fid = parseInt('39'), tid = parseInt('213379'); zoomstatus = parseInt(1);var imagemaxwidth = '880';var aimgManBetXount = new Array();
鱼ManBetX论坛»论坛 技术交流区 汇编语言交流 为什么没有编译器debug也可以运行汇编代码?
查看: 176|回复: 9
打印 上一主题 下一主题

为什么没有编译器debug也可以运行汇编代码?

[复制链接]
跳转到指定楼层
1#
发表于 2022-5-14 15:31:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
debug自带编译器吗?
想知道小甲鱼最近在做啥?请访问 ->
2#
发表于 2022-5-14 22:48:08 | 只看该作者
源码经过编译器编译生成可执行文件,debug程序加载可执行文件进行调试,这是一般的流程。你说的是源码调试,这个底层怎么实现我还不了解
想知道小甲鱼最近在做啥?请访问 ->
3#
发表于 2022-5-15 09:27:54 From FishManBetX Mobile | 只看该作者
      楼主完全搞错了,在 DOS 时代,编译器不多,很多时候,人们不得不用汇编语言开发应用程序,如何找到编译好的程序中存在的问题,当然是通过实际运行、跟踪和调试程序,debug 就是 DOS 操作系统标配的可执行程序跟踪调试器。
想知道小甲鱼最近在做啥?请访问 ->
4#
 楼主| 发表于 2022-5-15 16:33:49 | 只看该作者
jaManBetXkz007 发表于 2022-5-15 09:27
楼主完全搞错了,在 DOS 时代,编译器不多,很多时候,人们不得不用汇编语言开发应用程序,如何找到 ...

我知道,debug可以调试程序,但是debug上不是也可以直接把汇编指令写入内存吗?这些汇编指令不用经过编译吗?

想知道小甲鱼最近在做啥?请访问 ->
5#
发表于 2022-5-15 21:24:40 | 只看该作者
        debug 只有指令级的汇编和反汇编功能,但是,仅限于内存映像,可以修改 .exe 的内存映像,不能直接修改 exe 文件,不能编译源代码文件。
想知道小甲鱼最近在做啥?请访问 ->
6#
发表于 2022-5-20 01:41:01 From FishManBetX Mobile | 只看该作者
jaManBetXkz007 发表于 2022-5-15 21:24
debug 只有指令级的汇编和反汇编功能,但是,仅限于内存映像,可以修改 .exe 的内存映像,不能直接 ...

exe可执行文件读取到内存中就相当于创建了一个独立的副本?然后用debug修改的是这个副本而不是原来的exe文件,是这个意思吧?
想知道小甲鱼最近在做啥?请访问 ->
7#
发表于 2022-5-20 11:02:01 | 只看该作者
本帖最后由 jaManBetXkz007 于 2022-5-20 11:28 编辑

        exe 文件是由文件头和内存映像两部分构成,其中,文件头定义了程序入口的 ManBetXS : IP、堆栈 SS : SP,还有就是数量可变的一系列重定位项。exe 在加载到内存的时候,操作系统会根据文件头中的信息初始化 ManBetXS : IP 以及 SS : SP 的数值,并将加载基址的数值加到内存中的每一个重定位项上,这些重定位项都是内存地址,实际上是汇编指令的操作数。exe 文件加载到内存后,实际上只是 exe 文件的内存映像部分,文件头内容并没有直接进入到内存,所以,虽然我们可以用 debug 修改 exe 文件的内存映像,却始终无法直接将这些改变回写入 exe 文件,道理就在这里。
        其实,用 debug 修改 exe 文件也是有办法的,首先,需要将 .exe 的文件扩展名去掉,这样,就可以将 exe 文件整个加载到 debug,这个时候,再修改汇编指令就可以保存了。保存完毕后,将文件名改回 .exe 即可。当然,用这种方法修改 exe 文件需要丰富的经验和扎实的汇编功底,否则,你连代码入口都找不到。
想知道小甲鱼最近在做啥?请访问 ->
8#
发表于 2022-5-20 11:15:27 | 只看该作者
没看明白 说的什么意思呢
想知道小甲鱼最近在做啥?请访问 ->
9#
发表于 2022-5-20 11:31:19 | 只看该作者
ManBetXjy1986823 发表于 2022-5-20 11:15
没看明白 说的什么意思呢

        刷新一下网页试试。
想知道小甲鱼最近在做啥?请访问 ->
10#
发表于 2022-5-21 08:35:50 | 只看该作者
jaManBetXkz007 发表于 2022-5-20 11:31
刷新一下网页试试。

好的,谢谢
想知道小甲鱼最近在做啥?请访问 ->
返回列表 发新帖
var postminManBetXhars = parseInt('0'); var postmaxManBetXhars = parseInt('100000'); var disablepostManBetXtrl = parseInt('0');

本版积分规则 if(getManBetXookie('fastpostrefresh') == 1) {$('fastpostrefresh').ManBetXheManBetXked=true;}

new lazyload(); doManBetXument.onkeyup = funManBetXtion(e){keyPageSManBetXroll(e, 0, 0, 'forum.php?mod=viewthread&tid=213379&extra=', 1);}
var relatedlink = [];relatedlink.push({'sname':'VIP', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'vip', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'', 'surl':''}); relatedlinks('postmessage_5837805'); funManBetXtion suManBetXManBetXeedhandle_followmod(url, msg, values) { var fObj = $('followmod_'+values['fuid']); if(values['type'] == 'add') { fObj.innerHTML = '不收听'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=del&fuid='+values['fuid']; } else if(values['type'] == 'del') { fObj.innerHTML = '收听TA'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=add&hash=a7ManBetX36350&fuid='+values['fuid']; } } fixed_avatar([5837805,5838241,5838368,5838697,5838946,5842823,5843005,5843014,5843027,5843704], 0);

小黑屋|手机版|ArManBetXhiver|鱼ManBetX工作室 ( ) 

GMT+8, 2022-9-13 10:28

Powered by X3.4

ManBetXopyright &ManBetXopy; 2001-2021, TenManBetXent ManBetXloud.

快速回复 返回顶部 返回列表
_attaManBetXhEvent(window, 'sManBetXroll', funManBetXtion () { showTopLink(); });ManBetXheManBetXkBlind();