hex文件反编译成汇编语言_外部中断1例子(汇编、hex、反汇编)
- 格式:doc
- 大小:60.00 KB
- 文档页数:13
反汇编入门经典教程-CAL-FENGHAI.-(YICAI)-Company One1反汇编入门教程仅以此文来描述如何反汇编一个EXE程序,这里采用的是静态反汇编,也就是先把整个程序全部反汇编成汇编语言后进行修改,这个例子很简单,首先是我从看雪论坛上下载到的一个程序然后我们使用打开它,可以看到这个EXE程序在反编译以后的内容双击正式启动这个程序,随便输入注册码123,点击C HECK这里可以看到程序在输入错误后提示的内容然后我们使用"串式数据参考",找到这个字符串的位置这个位置如下可以看到在我程序的0040段,15B9这个偏移地址下程序输出了这个字符串,然后我们考虑一下,程序在我输入了错误的注册码,并且点击了CHECK以后,弹出了这个字符串,我们向上找,应该可以找到一个跳转,类似JE,JNE,JMP之类的东西,跳转到此处,位置如下可以看到在偏移地址15AB下有一个入口,注意R EFERENCED BY .....这句,是说"有人从这里插队了"到底是谁"插队"到这里了呢,是00401595这个代码.现在我们跳转到这个位置去追踪它输入00401595可以看到是个JNE(不等跳转),我们只要把这个JNE改成JE就可以了使用HIEW打开这个程序打开以后看到一堆乱码,这是因为它是用文本方式打开了一个EXE程序这里我们按F4,选择DECODE(反汇编)模式这回看到的就都是机器码了然后按F5,输入1595(刚才我们找到的那个语句地址),找到那个位置就是这个7516的JNE命令,我们要把它改成JE,这里直接把7516这个机器码修改成7416按F3进入编辑模式然后按F9保存这回再次打开修改后的程序,重新输入123,可以看到CRACK后的结果是完成!反汇编反汇编:把目标代码转为汇编代码的过程,也可说是把编程语言转为汇编语言代码,低级转高级的意思,常用于软件破解(例如找到它是如何注册的,从而解出它的注册码或者编写注册机。
汇编语言反编译汇编语言反编译是指将已编译的汇编语言程序反向解析为源代码的过程。
与源代码反编译类似,汇编语言反编译也是一种反向工程技术,常常被用于破解软件、检测恶意软件、分析软件性能等领域。
本文将分步骤阐述汇编语言反编译的过程。
1.获取汇编程序文件要进行汇编语言反编译,首先需要获取一个已编译的汇编程序文件。
这个文件应当包含了汇编程序的所有机器指令和数据,以二进制形式存储在文件内。
一般来说,汇编程序文件可以从软件安装包、软件运行时生成的临时文件等途径获取。
2.选择适当的反编译工具针对不同的汇编程序文件,有不同的反编译工具可供选择。
常用的反编译工具包括IDA Pro、Ghidra、Hopper等,这些工具具有易用性、功能强大、支持多种操作系统等特点,能够快速、准确地进行汇编语言反编译操作。
3.导入汇编程序文件将汇编程序文件导入反编译工具中,这通常需要指定汇编程序文件类型和操作系统平台,以便工具能够正确读取文件内容和解析文件格式。
导入后,反编译工具会将汇编程序文件中的二进制数据转化为可读的汇编语言程序。
4.分析汇编程序结构分析汇编程序结构是进行汇编语言反编译的核心步骤,它主要包括以下部分:1)识别函数和标签:在汇编程序中,各个函数和变量往往都以标签来表示,因此必须先识别出汇编程序中的所有标签和函数入口点,以便正确还原源代码的结构。
2)检查汇编指令:逐条检查汇编指令,理清各个指令之间的关系,包括数据流关系、控制流关系、函数调用关系等。
这一步骤的重点是还原源代码的逻辑结构。
3)还原变量和数据结构:在汇编程序中,各种变量和数据结构通常都以内存地址或指针的方式来表示,因此汇编语言反编译还需要还原这些变量和数据结构的具体类型、大小和使用方式等。
5.生成源代码在完成汇编程序的分析后,可以通过反编译工具来生成对应的源代码文件。
生成的源代码文件可能包含基本块、程序流程、变量定义等信息,经过优化以后可直接用于重新编译程序。
vb逆向反汇编简单例VB逆向反汇编简单例VB(Visual Basic)是一种面向对象的编程语言,广泛应用于Windows平台的软件开发。
在软件开发过程中,有时需要对已编译的程序进行逆向分析,以了解其内部实现或进行修改。
反汇编是一种逆向工程的技术,它可以将已编译的程序转换回可读的汇编代码,从而使开发者能够深入了解程序的内部结构和运行机制。
在VB中进行反汇编可以使用一些专业的工具,例如IDA Pro、OllyDbg等。
这些工具可以读取程序的二进制文件,将其转换为汇编代码,并提供一些高级的分析和调试功能。
下面我们以一个简单的例子来介绍如何使用VB进行反汇编。
假设我们有一个编译好的VB程序,它的功能是计算两个数的和。
我们想要了解这个程序的内部实现,以便对其进行修改或优化。
首先,我们需要使用反汇编工具打开这个程序的二进制文件。
在工具的界面上,我们可以看到程序的汇编代码。
汇编代码是一种低级的机器码表示方式,它使用一些特定的指令来操作计算机的硬件。
在VB程序的反汇编代码中,我们可以看到一些常见的指令,例如mov、add、sub等。
这些指令用于将数据从一个位置复制到另一个位置,进行加法、减法等基本的运算操作。
通过阅读汇编代码,我们可以了解到程序的执行流程和数据处理过程。
例如,我们可以看到程序中定义了一些变量和常量,它们用于存储计算过程中的中间结果。
我们还可以看到一些条件判断和循环结构,用于控制程序的执行流程。
通过分析这些结构,我们可以了解到程序的逻辑和算法。
在进行反汇编分析时,我们还可以使用一些调试功能来辅助我们的分析工作。
例如,我们可以设置断点,在程序运行到某个特定的位置时中断执行,并查看此时的内存状态和寄存器的值。
这些信息可以帮助我们理解程序的运行过程和数据变化情况。
除了分析程序的执行流程和数据处理过程,我们还可以通过反汇编了解程序的一些特性和功能。
例如,我们可以看到程序中使用的一些API函数或外部库函数的调用。
使用WinHex、IDA实现机器码转汇编
整理:太虚野老
1.在WinHex中打开任意一个EXE文件:
本文以Project2.exe为例。
2.在WinHex的Project2.exe中任意位置选择所需要的字节数:
所选择的字节数必须刚好容纳所需要的机器码。
这里选择文件开始的6个字节。
3.点击编辑→复制选块→至新文件:
4.在弹出的对话框中输入文件名:
这里以未命名为例。
5.在新文件中编写机器码:
这里以8b 15 00 04 04 08为例。
6.点击文件→保存:
7.使用IDA打开该文件:
可以看到汇编指令。
在打开文件时根据32位或64位选择相应的模式。
在WinHex中,每次修改机器码后,都需要删除该文件目录下IDA生成的文件,否则IDA不能更新修改后的文件。
IDA生成的文件如下所示:。
Keil 程序调试窗口上一讲中我们学习了几种常用的程序调试方法,这一讲中将介绍Keil 提供各种窗口如输出窗口、观察窗口、存储器窗口、反汇编窗口、串行窗口等的用途,以及这些窗口的使用方法,并通过实例介绍这些窗口在调试中的使用。
一、程序调试时的常用窗口Keil 软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows )、观察窗口(Watch&Call Statck Windows )、存储器窗口(Memory Window )、反汇编窗口(Dissambly Window )串行窗口(Serial Window )等。
进入调试模式后,可以通过菜单View 下的相应命令打开或关闭这些窗口。
图1是输出窗口、观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。
进入调试程序后,输出窗口自动切换到Command 页。
该页用于输入调试命令和输出调试信息。
对于初学者,可以暂不学习调试命令的使用方法。
1、存储器窗口存储器窗口中可以显示系统中各种内存中的值,通过在Address 后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C 、D 、I 、X ,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM 空间,数字代表想要查看的地址。
例如输入D :0即可观察到地址0开始的片内RAM 单元值、键入C :0即可显示从0开始的ROM 单元中的值,即查看程序的二进制代码。
该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成三部份,其中第一部份与第二部份的三个选项为同一级别,选中第一部份的任一选项,内容将以整数形式显示,而选中第二部份的Ascii 项则将以字符型式显示,选中Float 项将相邻四字节组成的浮点数形式显示、选中Double 项则将相邻8字节组成双精度形式显示。
c51hex文件反编译方法
C51是一种用于嵌入式系统开发的微控制器架构,其使用的是Keil C51编译器生成的HEX文件。
要对C51的HEX文件进行反编译,需要使用专门的反汇编工具,比如IDA Pro、Ghidra等。
这些工具
可以将HEX文件转换为汇编代码,但需要注意的是,由于HEX文件
是经过编译的机器码,反编译后的汇编代码可能不会完全还原原始
的C源代码。
另外,需要注意的是反编译HEX文件可能涉及到版权和法律问题,因为对于商业软件而言,其源代码通常是受到保护的。
在进行
反编译之前,务必确保你有合法的权限进行这样的操作。
总的来说,对于C51的HEX文件进行反编译是一项复杂的任务,需要使用专业的工具和合法的权限。
希望我的回答能够帮到你。
反编译与反汇编我们都曾经用过盗版的软件,都看过盗版的VCD,也都听过盗版的CD。
但是,有没有人知道,那些“盗版商”是如何盗版(正确地说用该叫做“破解”)的呢?下面,我们就来了解一下,他们是如何在正版载体之上所作的手脚!深入了解计算机的人应该都知道,现在软件破解专家和“盗版商”惯用的(准确地说应该是唯一的)途径来破解媒体的手段,就是———“反编译”和“反汇编”!何为“反编译”和“反汇编”?这也许是大家最关心的问题,也是大家最不明白的问题。
下面我将做出详细讲解。
反编译是一个将目标代码转换成源代码的过程。
大体上的定义是:目标代码是一种用语言表示的代码,这种语言能通过实机或虚拟机直接执行。
他是一个把程序“反写”的过程,但是,反编译只能反写程序的分支,他不可以反写整个程序。
打个比方,比如一个程序比作一棵大树,而反编译只能反写树枝,却不能反写树干。
那么,一个程序只反写了树枝是没有用的。
因为,程序的运行,本身要靠程序的主干来调入程序各个部分。
所以,盗版商还应该反写主干。
这就要用到另一个王牌杀手——反汇编。
当一个程序的分支都被反编译以后,这个程序基本上就是你自己制作的了,你是很了解他的特性的。
这样,用反汇编编译程序主体,再把已编译好的程序分支调入程序主体,从而找到漏洞。
其实,这里只需要用到这个软件的一个函数值,因为,函数,大家都知道,给X一个值,就有一个唯一的Y与之对应的。
这样,反复试几次,此软件的漏洞就暴露无遗。
这样,你就完成了一个软件的破解工作。
听起来,十分简单,但是,如果真的要让你做一下,那可不是一件简单的事情。
现在市面上买的盗版的 Windows系列产品,基本上都是盗版。
很大的软件,比如:Windows系列、Linux系列等等产品。
都需要几十人,甚至上百人一起破解。
因为,他们这些软件的加密技术实在是“天衣无缝”,但是,请永远记住这句话:没有没有漏洞的软件、没有没有漏洞的系统。
基本上,破解Windows产品的方法如下:软件商为了防止自己的软件被非法安装和反汇编,采取了很多办法,如安装盘的磁道加密、加密狗等技术,这些技术的发展促进了软件业的健康发展。
汇编程序:ORG 0000HLJMP MAINORG 0013HLJMP INTORG 0030HMAIN: SETB EASETB EX1SETB PX1SETB IT1MOV A, #01HHERE: SJMP HEREORG 0100HINT: MOV P1, ARL ARETIENDHex文件:800F3:0C080000787FE4F6D8FD047:030CB:100E7:0C003000D2AFD2AAD2BAD28A740180FEEC:04010000F590233221:00000001FF个人解释:(其实反汇编过程不能反映真实程序要执行的过程,因为外部中断1的触发需要配合硬件电路来实现才能产生,因此单纯执行汇编程序仅仅是顺序执行,并没有触发中断响应,进而执行中断服务程序。
)对hex文件进行反编译:;======================================================================= ===;====Power Disassembler for MCS-51 and6502================================;======================================================================= ===; Writen by: 覃远高; Copyright: 覃远高; HomePage: ; E-mail: ; Tel: 0; Update: 3.Jul,2000;======================================================================= ===;===========Disassembleinformation========================================;======================================================================= ===; File Name: C:\Users\wugaochao\Desktop\zhongduan.hex; IC Body: MCS-51; Date: 2016/9/13;======================================================================= ===;======================================================================= ===;标号==============指令================================地址===机器码=======;======================================================================= ===Q0000: LJMP Q0030 ;0000 02 00 30 ;======================================================================= ===Q0003: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q000B: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0013: DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q001B: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0023: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q002B: DB 00H, 00H, 00H, 00H, 00H ;.....;======================================================================= ===Q0030: SETB EA ;0030 D2 AFSETB EX1 ;0032 D2 AASETB PX1 ;0034 D2 BASETB IT1 ;0036 D2 8AMOV A,#01H ;0038 74 01SJMP $ ;003A 80 FENOP ;003C 00NOP ;003D 00NOP ;003F 00 NOP ;0040 00 NOP ;0041 00 NOP ;0042 00 NOP ;0043 00 NOP ;0044 00 NOP ;0045 00 NOP ;0046 00 NOP ;0047 00 NOP ;0048 00 NOP ;0049 00 NOP ;004A 00 NOP ;004B 00 NOP ;004C 00 NOP ;004D 00 NOP ;004E 00 NOP ;004F 00 NOP ;0050 00 NOP ;0051 00 NOP ;0052 00 NOP ;0053 00 NOP ;0054 00 NOP ;0055 00 NOP ;0056 00 NOP ;0057 00 NOP ;0058 00 NOP ;0059 00 NOP ;005A 00 NOP ;005B 00 NOP ;005C 00 NOP ;005D 00 NOP ;005E 00 NOP ;005F 00 NOP ;0060 00 NOP ;0061 00 NOP ;0062 00 NOP ;0063 00 NOP ;0064 00 NOP ;0065 00 NOP ;0066 00NOP ;0068 00 NOP ;0069 00 NOP ;006A 00 NOP ;006B 00 NOP ;006C 00 NOP ;006D 00 NOP ;006E 00 NOP ;006F 00 NOP ;0070 00 NOP ;0071 00 NOP ;0072 00 NOP ;0073 00 NOP ;0074 00 NOP ;0075 00 NOP ;0076 00 NOP ;0077 00 NOP ;0078 00 NOP ;0079 00 NOP ;007A 00 NOP ;007B 00 NOP ;007C 00 NOP ;007D 00 NOP ;007E 00 NOP ;007F 00 NOP ;0080 00 NOP ;0081 00 NOP ;0082 00 NOP ;0083 00 NOP ;0084 00 NOP ;0085 00 NOP ;0086 00 NOP ;0087 00 NOP ;0088 00 NOP ;0089 00 NOP ;008A 00 NOP ;008B 00 NOP ;008C 00 NOP ;008D 00 NOP ;008E 00 NOP ;008F 00NOP ;0091 00 NOP ;0092 00 NOP ;0093 00 NOP ;0094 00 NOP ;0095 00 NOP ;0096 00 NOP ;0097 00 NOP ;0098 00 NOP ;0099 00 NOP ;009A 00 NOP ;009B 00 NOP ;009C 00 NOP ;009D 00 NOP ;009E 00 NOP ;009F 00 NOP ;00A0 00 NOP ;00A1 00 NOP ;00A2 00 NOP ;00A3 00 NOP ;00A4 00 NOP ;00A5 00 NOP ;00A6 00 NOP ;00A7 00 NOP ;00A8 00 NOP ;00A9 00 NOP ;00AA 00 NOP ;00AB 00 NOP ;00AC 00 NOP ;00AD 00 NOP ;00AE 00 NOP ;00AF 00 NOP ;00B0 00 NOP ;00B1 00 NOP ;00B2 00 NOP ;00B3 00 NOP ;00B4 00 NOP ;00B5 00 NOP ;00B6 00 NOP ;00B7 00 NOP ;00B8 00NOP ;00BA 00 NOP ;00BB 00 NOP ;00BC 00 NOP ;00BD 00 NOP ;00BE 00 NOP ;00BF 00 NOP ;00C0 00 NOP ;00C1 00 NOP ;00C2 00 NOP ;00C3 00 NOP ;00C4 00 NOP ;00C5 00 NOP ;00C6 00 NOP ;00C7 00 NOP ;00C8 00 NOP ;00C9 00 NOP ;00CA 00 NOP ;00CB 00 NOP ;00CC 00 NOP ;00CD 00 NOP ;00CE 00 NOP ;00CF 00 NOP ;00D0 00 NOP ;00D1 00 NOP ;00D2 00 NOP ;00D3 00 NOP ;00D4 00 NOP ;00D5 00 NOP ;00D6 00 NOP ;00D7 00 NOP ;00D8 00 NOP ;00D9 00 NOP ;00DA 00 NOP ;00DB 00 NOP ;00DC 00 NOP ;00DD 00 NOP ;00DE 00 NOP ;00DF 00 NOP ;00E0 00 NOP ;00E1 00NOP ;00E3 00NOP ;00E4 00NOP ;00E5 00NOP ;00E6 00NOP ;00E7 00NOP ;00E8 00NOP ;00E9 00NOP ;00EA 00NOP ;00EB 00NOP ;00EC 00NOP ;00ED 00NOP ;00EE 00NOP ;00EF 00NOP ;00F0 00NOP ;00F1 00NOP ;00F2 00NOP ;00F3 00NOP ;00F4 00NOP ;00F5 00NOP ;00F6 00NOP ;00F7 00NOP ;00F8 00NOP ;00F9 00NOP ;00FA 00NOP ;00FB 00NOP ;00FC 00NOP ;00FD 00NOP ;00FE 00NOP ;00FF 00MOV P1,A ;0100 F5 90RL A ;0102 23RETI ;0103 32;======================================================================= ===Q0104: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q010C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0114: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q011C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0124: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q012C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q013C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0144: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q014C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0154: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q015C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0164: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q016C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0174: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q017C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0184: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q018C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0194: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q019C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0204: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q020C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0214: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q021C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0224: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q022C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0234: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q023C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0244: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q024C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0254: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q025C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0264: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q026C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0274: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0284: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q028C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0294: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q029C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0304: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q030C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0314: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q031C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0324: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q032C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0334: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q033C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0344: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q034C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0354: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q035C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0364: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q036C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0374: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q037C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0384: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q038C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0394: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q039C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q03CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0404: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q040C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0414: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q041C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0424: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q042C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0434: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q043C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0444: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q044C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0454: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q045C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0464: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q046C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0474: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q047C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0484: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q048C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0494: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q049C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0504: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0514: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q051C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0524: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q052C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0534: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q053C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0544: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q054C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0554: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q055C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0564: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q056C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0574: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q057C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0584: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q058C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0594: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q059C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0604: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q060C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0614: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q061C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0624: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q062C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0634: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q063C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0644: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q064C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q065C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0664: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q066C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0674: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q067C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0684: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q068C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0694: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q069C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0704: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q070C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0714: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q071C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0724: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q072C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0734: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q073C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0744: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q074C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0754: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q075C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0764: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q076C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0774: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q077C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0784: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q078C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0794: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07FC: DB 00H, 00H, 00H, 00H, 78H, 7FH,0E4H,0F6H ;....x•..Q0804: DB 0D8H,0FDH, 75H, 81H, 07H, 02H, 00H, 00H ;..u.....;======================================================================= ===。
C语言中的反汇编与逆向工程实践在计算机科学领域,反汇编和逆向工程是两个与软件分析和代码理解密切相关的概念。
反汇编是将机器语言代码或者已编译的二进制代码转换回汇编语言代码的过程。
逆向工程则是通过分析已有的软件代码来推导出设计原理、算法和逻辑等信息。
一、反汇编的原理和应用反汇编是一种将计算机程序转换回汇编语言的技术。
在计算机执行程序时,计算机用二进制指令来执行任务。
这些指令可以通过反汇编来还原成对应的汇编语言代码,使我们能够更好地理解程序的执行过程和实现原理。
反汇编在软件分析、漏洞挖掘和安全研究等领域中有着广泛的应用。
通过反汇编软件,我们可以深入研究软件的工作原理,发现其中的漏洞或者进行优化。
反汇编也可以用于进行逆向工程,帮助我们理解和修改已有的二进制代码。
二、逆向工程的实践1. 逆向工程的工具和技术逆向工程是通过分析已有的二进制代码来推导出设计原理和算法的过程。
在逆向工程实践中,我们通常会使用一些特定的工具和技术来帮助我们分析和理解代码。
一种常用的逆向工程工具是IDA Pro,它是一款功能强大的反汇编和调试软件。
IDA Pro可以帮助我们将二进制代码转换成易于理解的汇编语言,并提供代码调试和动态分析的功能。
除了IDA Pro,还有一些其他的逆向工程工具和技术,例如,OllyDbg、GDB、lldb等调试器。
这些调试器可以帮助我们分析代码的执行过程,理解代码的逻辑结构。
2. 逆向工程的应用逆向工程在软件分析和安全研究领域有着广泛的应用。
通过逆向工程,我们可以帮助理解和修改已有的软件,提高软件的性能和安全性。
以下是逆向工程在实践中的一些常见应用:(1) 漏洞挖掘和修复:通过逆向分析已有的软件,我们可以发现其中的漏洞和薄弱点。
在发现漏洞后,我们可以通过逆向工程技术修复这些漏洞,提高软件的安全性。
(2) 性能优化:通过逆向工程,我们可以深入理解软件的实现原理和算法,找出其中的性能瓶颈,并进行优化。
(3) 版权保护和反盗版:逆向工程也可以帮助软件开发者保护自己的版权。
汇编程序:ORG 0000HLJMP MAINORG 0013HLJMP INTORG 0030HMAIN: SETB EASETB EX1SETB PX1SETB IT1MOV A, #01HHERE: SJMP HEREORG 0100HINT: MOV P1, ARL ARETIENDHex文件:800F3:0C080000787FE4F6D8FD047:030CB:100E7:0C003000D2AFD2AAD2BAD28A740180FEEC:04010000F590233221:00000001FF个人解释:(其实反汇编过程不能反映真实程序要执行的过程,因为外部中断1的触发需要配合硬件电路来实现才能产生,因此单纯执行汇编程序仅仅是顺序执行,并没有触发中断响应,进而执行中断服务程序。
)对hex文件进行反编译:;======================================================================= ===;====Power Disassembler for MCS-51 and6502================================;======================================================================= ===; Writen by: 覃远高; Copyright: 覃远高; HomePage: ; E-mail: ; Tel: 0; Update: 3.Jul,2000;======================================================================= ===;===========Disassembleinformation========================================;======================================================================= ===; File Name: C:\Users\wugaochao\Desktop\zhongduan.hex; IC Body: MCS-51; Date: 2016/9/13;======================================================================= ===;======================================================================= ===;标号==============指令================================地址===机器码=======;======================================================================= ===Q0000: LJMP Q0030 ;0000 02 00 30 ;======================================================================= ===Q0003: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q000B: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0013: DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q001B: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0023: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q002B: DB 00H, 00H, 00H, 00H, 00H ;.....;======================================================================= ===Q0030: SETB EA ;0030 D2 AFSETB EX1 ;0032 D2 AASETB PX1 ;0034 D2 BASETB IT1 ;0036 D2 8AMOV A,#01H ;0038 74 01SJMP $ ;003A 80 FENOP ;003C 00NOP ;003D 00NOP ;003F 00 NOP ;0040 00 NOP ;0041 00 NOP ;0042 00 NOP ;0043 00 NOP ;0044 00 NOP ;0045 00 NOP ;0046 00 NOP ;0047 00 NOP ;0048 00 NOP ;0049 00 NOP ;004A 00 NOP ;004B 00 NOP ;004C 00 NOP ;004D 00 NOP ;004E 00 NOP ;004F 00 NOP ;0050 00 NOP ;0051 00 NOP ;0052 00 NOP ;0053 00 NOP ;0054 00 NOP ;0055 00 NOP ;0056 00 NOP ;0057 00 NOP ;0058 00 NOP ;0059 00 NOP ;005A 00 NOP ;005B 00 NOP ;005C 00 NOP ;005D 00 NOP ;005E 00 NOP ;005F 00 NOP ;0060 00 NOP ;0061 00 NOP ;0062 00 NOP ;0063 00 NOP ;0064 00 NOP ;0065 00 NOP ;0066 00NOP ;0068 00 NOP ;0069 00 NOP ;006A 00 NOP ;006B 00 NOP ;006C 00 NOP ;006D 00 NOP ;006E 00 NOP ;006F 00 NOP ;0070 00 NOP ;0071 00 NOP ;0072 00 NOP ;0073 00 NOP ;0074 00 NOP ;0075 00 NOP ;0076 00 NOP ;0077 00 NOP ;0078 00 NOP ;0079 00 NOP ;007A 00 NOP ;007B 00 NOP ;007C 00 NOP ;007D 00 NOP ;007E 00 NOP ;007F 00 NOP ;0080 00 NOP ;0081 00 NOP ;0082 00 NOP ;0083 00 NOP ;0084 00 NOP ;0085 00 NOP ;0086 00 NOP ;0087 00 NOP ;0088 00 NOP ;0089 00 NOP ;008A 00 NOP ;008B 00 NOP ;008C 00 NOP ;008D 00 NOP ;008E 00 NOP ;008F 00NOP ;0091 00 NOP ;0092 00 NOP ;0093 00 NOP ;0094 00 NOP ;0095 00 NOP ;0096 00 NOP ;0097 00 NOP ;0098 00 NOP ;0099 00 NOP ;009A 00 NOP ;009B 00 NOP ;009C 00 NOP ;009D 00 NOP ;009E 00 NOP ;009F 00 NOP ;00A0 00 NOP ;00A1 00 NOP ;00A2 00 NOP ;00A3 00 NOP ;00A4 00 NOP ;00A5 00 NOP ;00A6 00 NOP ;00A7 00 NOP ;00A8 00 NOP ;00A9 00 NOP ;00AA 00 NOP ;00AB 00 NOP ;00AC 00 NOP ;00AD 00 NOP ;00AE 00 NOP ;00AF 00 NOP ;00B0 00 NOP ;00B1 00 NOP ;00B2 00 NOP ;00B3 00 NOP ;00B4 00 NOP ;00B5 00 NOP ;00B6 00 NOP ;00B7 00 NOP ;00B8 00NOP ;00BA 00 NOP ;00BB 00 NOP ;00BC 00 NOP ;00BD 00 NOP ;00BE 00 NOP ;00BF 00 NOP ;00C0 00 NOP ;00C1 00 NOP ;00C2 00 NOP ;00C3 00 NOP ;00C4 00 NOP ;00C5 00 NOP ;00C6 00 NOP ;00C7 00 NOP ;00C8 00 NOP ;00C9 00 NOP ;00CA 00 NOP ;00CB 00 NOP ;00CC 00 NOP ;00CD 00 NOP ;00CE 00 NOP ;00CF 00 NOP ;00D0 00 NOP ;00D1 00 NOP ;00D2 00 NOP ;00D3 00 NOP ;00D4 00 NOP ;00D5 00 NOP ;00D6 00 NOP ;00D7 00 NOP ;00D8 00 NOP ;00D9 00 NOP ;00DA 00 NOP ;00DB 00 NOP ;00DC 00 NOP ;00DD 00 NOP ;00DE 00 NOP ;00DF 00 NOP ;00E0 00 NOP ;00E1 00NOP ;00E3 00NOP ;00E4 00NOP ;00E5 00NOP ;00E6 00NOP ;00E7 00NOP ;00E8 00NOP ;00E9 00NOP ;00EA 00NOP ;00EB 00NOP ;00EC 00NOP ;00ED 00NOP ;00EE 00NOP ;00EF 00NOP ;00F0 00NOP ;00F1 00NOP ;00F2 00NOP ;00F3 00NOP ;00F4 00NOP ;00F5 00NOP ;00F6 00NOP ;00F7 00NOP ;00F8 00NOP ;00F9 00NOP ;00FA 00NOP ;00FB 00NOP ;00FC 00NOP ;00FD 00NOP ;00FE 00NOP ;00FF 00MOV P1,A ;0100 F5 90RL A ;0102 23RETI ;0103 32;======================================================================= ===Q0104: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q010C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0114: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q011C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0124: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q012C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q013C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0144: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q014C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0154: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q015C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0164: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q016C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0174: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q017C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0184: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q018C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0194: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q019C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q01FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0204: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q020C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0214: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q021C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0224: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q022C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0234: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q023C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0244: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q024C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0254: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q025C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0264: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q026C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0274: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0284: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q028C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0294: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q029C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q02FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0304: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q030C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0314: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q031C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0324: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q032C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0334: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q033C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0344: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q034C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0354: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q035C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0364: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q036C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0374: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q037C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0384: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q038C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0394: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q039C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q03CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q03FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0404: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q040C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0414: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q041C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0424: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q042C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0434: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q043C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0444: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q044C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0454: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q045C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0464: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q046C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0474: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q047C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0484: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q048C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0494: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q049C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q04FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0504: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q0514: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q051C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0524: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q052C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0534: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q053C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0544: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q054C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0554: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q055C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0564: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q056C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0574: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q057C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0584: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q058C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0594: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q059C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q05FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0604: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q060C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0614: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q061C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0624: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q062C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0634: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q063C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0644: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q064C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q065C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0664: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q066C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0674: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q067C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0684: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q068C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0694: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q069C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q06FC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0704: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q070C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0714: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q071C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0724: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q072C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0734: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q073C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0744: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q074C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0754: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q075C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0764: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q076C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0774: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q077C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0784: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q078C: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........ Q0794: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07A4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07AC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07B4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07BC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07C4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07CC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07D4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07DC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07E4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07EC: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07F4: DB 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;........Q07FC: DB 00H, 00H, 00H, 00H, 78H, 7FH,0E4H,0F6H ;....x•..Q0804: DB 0D8H,0FDH, 75H, 81H, 07H, 02H, 00H, 00H ;..u.....;======================================================================= ===。