会汇编语言的进来看下哈

来源:百度知道 编辑:UC知道 时间:2024/06/06 13:09:59
这段代码里面有个key或密码的东西,我一点没没基础所以请人下看,找下可疑的关键字,谢谢了!!!!!
Disassembly of File: debug.exe
Code Offset = 00000260, Code Size = 0000002B
Data Offset = 00000000, Data Size = 00000000

Number of Objects = 0001 (dec), Imagebase = 00000000h

Object01: RVA: 00000000 Offset: 00000260 Size: 0000002B Flags: 00000000

Number of Imported Modules = 0 (decimal)

+++++++++++++++++++ IMPORT MODULE DETAILS +++++++++++++++

+++++++++++++++++++ EXPORTED FUNCTIONS ++++++++++++++++++
Number of Exported Functions = 0000 (decimal)

+++++++++++++++++++ ASSEMBLY CODE LISTING ++++++++++++++++++
//********************** Start of Code in Object BinaryCode **************
Program Entry Point = 0001:0000

//********************** Start of Code in Segment: 1 **************

//******************** Program Entry Point ********
:0001.0000 B80000 mov ax, 0000
:0001.0003 8ED8

这是一个很危险的程序段,因为执行时修改了程序段自身,而修改结果,难以预料。虽然程序没有显式地给附加段寄存器赋值,但默认附加段与代码段同段。

这是经过编译后的目标模块,去掉那些说明文字,整体程序如下:

:0001.0000 B80000 mov ax, 0000
:0001.0003 8ED8 mov ds, ax ;置数据段寄存器为0
:0001.0005 BA0000 mov dx, 0000 ;字符串首地址(整体内存的第一个字节位置)
:0001.0008 B409 mov ah, 09 ;dos功能调用9号功能,显示一个字符串
:0001.000A CD21 int 21 ;dos功能调用
:0001.000C 8D362D00 lea si, [002D] ;源变址寄存器赋初值=2DH
:0001.0010 8D3E0000 lea di, [0000] ;目的变址寄存器赋初值=0(指向本程序段第一个字节)
:0001.0014 FC cld ;清方向标志,使变址寄存器递增
:0001.0015 AC lodsb ;从源变址寄存器所指的内存位置读入一个字节至8位累加器
:0001.0016 3C24 cmp al, 24 ;与$比较
:0001.0018 740D je 0027 ;若是,跳转至27处(本程序段倒数第二条指令)
:0001.001A 3C41 cmp al, 41 ;与大写字母“A”比较
:0001.001C 7206 jb 0024 ;若小于,跳转至24H
:0001.001E 3C5A cmp al, 5A ;与大写字母“Z”比较
:0001.0020 7302 jnb 0024 ;若大于或等于,跳转至24H
:0001.0022 0403 add al, 03 ;al+3→al(关键字或密码)
:0001.0024 AA stosb ;写入目的变址寄存器指定的位置
:0001.0025 EBEE jmp 0015 ;循环,处理下一个字节
:0001.0027 B403 mo