注册 登录
编程论坛 汇编论坛

简单XOR加密简单实现

dgz333 发布于 2012-11-15 21:53, 524 次点击
MOV AL,12;这里12可以随便填两个数字
MOV EDI,401026;要加密的代码结束地址,也就是要加密的代码最后面的地址
MOV ECX,14;要加密的代码的长度 比如 401012-401026 也就是401026减去401012等于14
XOR BYTE PTR DS:[EDI],AL;异或edi和AL,第一次EDI等于401026 以此类推
DEC EDI
LOOPD SHORT 0040100D;循环异或到加密完成执行下一行,0040100D的地址是XOR BYTE PTR DS:[EDI],AL

下面是MASM 消息框加密源码
程序代码:
.386
.Model Flat, StdCall
Option Casemap :None

Include user32.inc
Include kernel32.inc

IncludeLib user32.lib
IncludeLib kernel32.lib

.data
a db '雨滴小组群:199235789',0
.CODE
start:
nop
mov al, 12h;秘钥
mov edi, codeEnd;要加密的代码结束地址
mov ecx, codeEnd - codeStart;要加密的代码结束地址减去开始地址=要加密的代码长度
decryptLoop:;这个是循环用的
XOR BYTE PTR DS:[EDI],AL
dec edi
loop decryptLoop;循环加密到加密完执行下一行


codeStart:;这里是要加密的代码开始地址
PUSH 0
PUSH  offset a
PUSH  offset a            
PUSH 0
Call MessageBox
ret
codeEnd:;这里是要加密的代码结束地址
END start

要把代码段改成可写 在用OD断点加密 保存加密好的程序实现加密

[ 本帖最后由 dgz333 于 2012-11-15 21:57 编辑 ]
3 回复
#2
zklhp2012-11-15 21:58
短小精悍 是难道一见的win32asm代码 无条件高亮
#3
有容就大2012-11-15 23:31
向楼主学习 欢迎多来这里帮忙。。。
#4
pxhb2013-10-27 10:53
感谢分享,有用
1