本贴核心目的:
1.说明debug命令在bat中的作用:生成exe;以及涉及第三方程序时的生成(担心所用的东东用户没有)。
2.初步说明debug的执行方式。
至于有些人问的 如何生成debug文件?以及 如何突破debug的64K限制? 等等 不再本贴讨论范围内。
应 topy12345 和 cy32cxb98 的要求在此讨论.....仅仅是讨论哦 O(∩_∩)O~
------------------------------------------------------------------------------------------------------
bat作为一个方便快捷的东东,有它的优势,自然也有他的局限性。
比如: 一些系统函数 API等等 都无法实现。
echo 和>>的结合给了我们bat操作系统关键部分希望 。 利用这两个命令 可以生成txt,reg,ini.......用他们操作系统的注册表,boot.ini等等关键部分(亦有独立的命令,如: reg add)。
但是这还不够。 debug生成exe 作为bat的一个扩展出现。 有了exe 我们能干的事情多了.....比如坛子里的【挑战区】,我们都可以用exe来完成。
有些人问: 这还是bat么? 嘿嘿 debug是bat的一个命令,生成的exe,我们把它当做临时文件好了 (呵呵 有点投机取巧.....)
以下是debug参数 (只给出bat方面能用到的, 想知道更多 问斑竹去 (~ o ~)~zZ )
? 显示 Debug 命令列表。
c 比较内存的两个部分。
d 显示部分内存的内容。
e 从指定地址开始,将数据输入到内存。
f 使用指定值填充一段内存。
g 运行在内存中的可执行文件。
h 执行十六进制运算。
/n 为 l 或 w 命令指定文件,或者指定正在测试的文件的参数。
p 执行循环、重复的字符串指令、软件中断或子例程。
q 停止 Debug 会话。
r 显示或改变一个或多个寄存器。
w 将被测试文件写入磁盘。
以下给出个例子 : (自己编的一部分)
由于不知道你们习惯什么样的 注释 就用---------------------来说明
- @echo off-------------------- 关闭回显
- cls--------------------清屏 此法虽然没有临时文件,但会显示编译过程
- more +72 "%~0"|debug&graftabl 936>nul-------------------more 偏移 ,截取我的东东, 你自己要改more的值
- copy/b/y C:\WINDOWS\system32\$tmp$ C:\WINDOWS\system32\BL_alarm.exe>nul
- del/a/f/q C:\WINDOWS\system32\$tmp$
- goto:test_f-------------------这个是去执行下个的 ,
- e0100 4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 --------------------文件代码
- e0110 B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
- e0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- e0130 00 00 00 00 00 00 00 00 00 00 00 00 B8 00 00 00
- .........
- ..........
- ...........
- rcx
- 5FFF
- nC:\WINDOWS\system32\$tmp$
- w
- q-----------------记得退出
复制代码
附件是 我写的2个例子 ,已经有权限了,所以发的是成品。
1.是 实时监控的成品
2.是md5检测工具的生成(偷懒.... 把程序直接截取过来)。
[ 本帖最后由 bluewing009 于 2009-12-1 17:27 编辑 ] |