伊春市网站建设_网站建设公司_ASP.NET_seo优化
2026/1/19 18:58:12 网站建设 项目流程

概述:

这儿讲述的是用单条指令加密法,再用 int 1 单步中断解下一条指令的第一字节,由于用另外程序解密时无法预知指令长, 所以不能用编程的方法解密,只能用手工一条一条地解。具体实现见注释,这种加密法的麻烦只处就是加密时也要一句一句来。

汇编编程示例:

code segment

assume cs:code,ds:code

org 100h

start:

jmp install

d_ok db 'OK, passed...',0dh,0ah,24h

temp_bx dw ?

off1 dw ?

seg1 dw ?

int1:

mov temp_bx,bx ;save bx

mov bx,sp ;BX=SP=0016h

mov bx,ss:[bx]

xor byte ptr ds:[bx],55h ;decode

mov bx,temp_bx

iret

install:

mov ax,3501h ;保存原 INT 1 中断向量

int 21h

mov off1,bx ;设置新 INT 1 到 offset int1

mov seg1,es

mov ax,2501h

mov dx,offset int1

int 21h

xor byte ptr x1,55h ;这些指令是先把以下

xor byte ptr x2,55h ;的一些指令加密

xor byte ptr x3,55h ;当然,在应用时就不会有这些指令了

xor byte ptr x4,55h

xor byte ptr x5,55h

xor byte ptr x6,55h

xor byte ptr x7,55h

xor byte ptr x8,55h

xor byte ptr x9,55h

pushf

pop ax

or ax,0100h

push ax

popf ;打开单步跟踪

nop ;由于单步跟踪要在执行下一条指令后才激活

x1: ;所以这儿是一条 NOP 指令

mov ah,9

x2:

mov dx,offset d_ok

x3:

int 21h

x4:

pushf

x5:

pop ax ;从 X1 到 X9 的指令要在

x6:

and ax,0feffh ;执行中才由 INT 1 逐句解开

x7:

push ax

x8:

popf

x9:

nop

mov ax,2501h ;把 INT 1 复原

lds dx,dword ptr off1

int 21h

int 20h

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询