概述:
这儿讲述的是用单条指令加密法,再用 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
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>