一种奇怪的使用debug方式,写到最后觉得后果很可怕[bsnhk原创]
来源:互联网 发布:淘宝销售属性 编辑:程序博客网 时间:2024/04/30 06:36
一种奇怪的使用debug方式,写到最后觉得后果很可怕
2010-8-6 22:21 bsnhk原创
一、为了实验方便,在系统盘的根目录创建一个空白的文本文件,并命名为t.txt。
二、打开DOS命令行,进行如下操作:
cd / (跳到根目录)
debug < t.txt
三、上面最后一个命令执行后,会打开一个debug,但你会发现它对键盘输入没有任何反应。不要担心,这个debug还没死掉,只是它的输入“设备”被定向到文件文件t.txt了。这里将一个文件称为“设备”可能有很多人不习惯不理解,其实在DOS时代,“设备”可以是打印机、显示器、文件,而定向符“<”是输入,“>”是输出。
将debug的输入定向到t.txt后,我们就只能在t.txt中输入了,每一次输入结束后都要保存,这样,所输入的内容才真正输入到debug中;要回车,在t.txt回车后也要保存才在debug中生效。
注意:在t.txt中输入的内容如果已经保存过,就不要删除它,你可以将t.txt想象成一个DOS命令行或debug环境,前面已执行过的命令你删除不了。如果是在t.txt中删除之前保存过的内容,那文件指针会向前移,所移过的位置重新输入的内容,debug都不接受。这里讲得不好,下面来个例子说明:
在t.txt中输入如下三个命令:
d
d
d
(最后一个回车)
然后保存以上输入,一保存,立即可在debug窗口中看到效果,显示三栏内存信息。
现在在t.txt中将以上三个d中的最后两个删除(保留第一个d后的回车):
d
(第一个d后的回车)
然后保存,我们在debug窗口中看不到任何效果,现在输一个r然后回车:
d
r
(输入r后的回车)
然后保存,在debug窗口中仍看不到有任何动静,再输入一个r然后回车:
d
r
r
(第二个r后的回车)
然后保存,还是看不到任何动静,再输入一个r然后回车:
d
r
r
r
(第三个r后的回车)
然后保存,这次终于看到动静了。
理解了吧,在t.txt中保存过的内容都不要删除,你就将它当做一个命令行来使用,一行一行地输入,要执行命令就敲回车,不要忘记保存,不保存不会生效了。
四、你可以用这种方式来使用debug中任何功能,包括直接在内存中输入机器码程序并运行它,也可以进入a命令汇编出你的程序并执行它。
五、如果你要退出这个debug,在t.txt中输入一个q然后回车,然后保存就可以了。
六、最后要提到的是,用这种方式执行你的程序,杀毒软件是不会启动检查机制的,因为t.txt本身是文本文件,你在t.txt中输入的内容是字符串而不是机器码(只不过是机器码的字面字符形式,),杀毒软件无法处理字符串的内容。
如果你有一个exe文件,你可以先用debug将它导入到内存中,然后复制出它在内存中的内容(十六进制的字面字符形式)到一个文本文件中,经过精心的安排,用上面的方法来执行它,那么是不会触动杀毒软件的检查的。
- 一种奇怪的使用debug方式,写到最后觉得后果很可怕[bsnhk原创]
- WM_PAINT 消息不处理的可怕后果
- 我觉得很奇怪
- 推荐一种给苹果设备推送消息的方式,个人觉得很方便
- 【原创】使用JFreeChart制作报表的详细例子,要是觉得写的还不错希望大家支持
- 将文本文件中的“机器码”帖入内存的方法(bsnhk原创)
- 写缓冲区时两次使用 inet_ntoa 的后果
- 忘记写"public"的后果
- 写Makefile粗心的后果
- ECLIPSE 使用JDK1.7的DEBUG的奇怪问题
- CheckBoxList 的一种使用方式
- 初学者使用storyboard(转载,觉得写的非常好)
- javascript--一种奇怪的语言
- velocity初始化的日志很奇怪,就debug了一下
- 有一种很奇怪的精神叫“加班”...?
- epoll使用(2)-- 奇怪的异步使用方式
- epoll使用(2)-- 奇怪的异步使用方式
- 原始httpclient使用代理的一种很挫的方式
- MySQL的经典用法(二)----按月统计数据
- 无人驾驶
- Properties 基本知识 加try catch
- Eclipse提示
- MySQL的经典用法(五)----触发器
- 一种奇怪的使用debug方式,写到最后觉得后果很可怕[bsnhk原创]
- Eclipse常用
- Eclipse常用
- Eclipse常用
- iptable 初始动作 开发 ssh
- Hibernate工作原理
- jqr
- invalid assignment left-hand side
- LGame(Android及J2SE游戏引擎)入门示例——如何构建一个游戏