简单XOR加密简单实现
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 编辑 ]