*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: 冰的热度
*/ 时间: 2007-9-17 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------
一年前在网上搜到一个号称是世界第一高手的程序,前些天又在本论坛搜到,
很多网友都说看不懂,觉的挺难的,其实这个程序并不是深不可测,
我可以给大家简单解读一下程序的意思.
原程序可以在本论坛搜到,我就不贴出来了.
其实他是用机器语言写的,除了结尾,主程序中都是 0--f 组成,也就是 16 进制数,
大家可以看到程序左边竖着一列都是以 e 开头的,如 e100 ,这表示地址,
应该是基地址(CS)和偏移地址(IP)的和.
以第一行为例:e100后面的33 f6 bf 0 20 b5 10 f3 a5 8c c8 5 0 2 50 68 13 1 cb e 1f be a1 1 bf 0 1
就是这个"段"中的指令,至于什么是"段",在这不再详述,
每一组16进制数代表着特定的意义,如 mov bx 2200H 的机器指令是 BB0022
每一组占一个字节,大家数一数,第一行有多少字节,对是27个字节,
所以第二行的起始地址是 e11b,以此类推.
至于具体的每一句的意思,大家有了一定的汇编语言经验,就会知道了,
因为在DOS中用debug命令可以看到汇编指令对应的机器指令,
如刚才说的mov bx 2200H 的机器指令是 BB0022
再说程序最后,
g
rcx
fff
n1.com
w
q
应该是debug的命令,现在可以肯定的是最后的q是degug的命令,退出的意思,
上面几行是写入文件的意思,但再具体,目前我就不知道了,以后知道了,马上告诉大家.
现在大家是不是基本知道这个程序的意思或结构了?
[此贴子已经被作者于2007-9-17 18:04:25编辑过]