步骤:
1.先找到你要加密的字符串的物理地址,再转为内存地址
2.记录下DLL现在的入口点,然后找一个零区域,同样记录下其内存地址,用来写入加密代码
再用LoadPe改入口点为零区域的地址
还得用LoadPe改PcMain.dll输出表所在区段的标志为E0000020,标志为E0000020就是可读可写
可执行.如果你不改这个的话,运行是会出错的!
字符串的物理地址:
字符串的内存地址:
DLL的入口点:
零区域地址:
(用LoadPE改入口的时候得去掉内存地址的基址哦)
3.再用下面的代码来实现加密,但这样一个一个的粘贴上去是很慢的,所以还是
用下面的二进制来粘贴了,这样不容易出错,也节省了时间
————————————————————————————————————
PUSHAD
CALL 10011866 //call 下面的“pop eax”的地址
POP EAX
XOR AX,AX
ADD EAX,xxxxxxxx //内存地址去掉前面的1001基址得到****,这里得按你的情况来填
XCHG EAX,ESI
MOV EDI,ESI
LODS BYTE PTR DS:[ESI]
OR AL,AL
JE 1001187C //je到下面的“POPAD”
XOR AL,18
STOS BYTE PTR ES:[EDI]
JMP 10011872 //jmp到上面的“LODS BYTE PTR DS:[ESI]”
POPAD
JMP xxxxxxxx //jmp到原入口,这里得按你的情况来填
————————————————————————————————————
二进制粘贴的代码:
60 E8 00 00 00 00 58 66 33 C0 05 C7 29 00 00 96 8B FE AC 08 C0 74 05 34 18 AA EB F6 61 EB 89
————————————————————————————————————
这样改后用OD打开文件,走到你加密的字符串那里,按F8单步,看看字符串被加密成了什么东西,二进
制复制下来,
然后把这些加密了的字符串覆盖掉原字符串就可以了(正常的字符串被异或后成了乱码,所以乱码再次
被异或就能还原成了原来的正常的字符串)