加密精灵(EncryptGenie)2.2 注册码破解及注册机制作
==============================================================
作者:maomao
软件:加密精灵(EncryptGenie)2.2
加密精灵(EncryptGenie)2.2 版是一个非常方便和容易使用的加密文件的软件,它使用CES ( Chaos Encryption
Standard )加密算法加密。
下载:http://www.encryptgenie.com/cn/download/EncryptGenie.exe(632k)
说明:本软件是一款比较优秀的国产加密软件,而且只有20元的注册费,本破解的目的在于对解密技术探讨,希望大家能支持国产正版软件。
工具:Trw2000 v1.23
日期:2001-10-28
==============================================================
下载安装后未注册版有两个功能限制:
1. 未注册版最多只可以输入16个字符长的密码。注册版最多可以输入128个字符长的密码。
2. 未注册版软件在每次启动时,都显示一个启动画面。注册版可以移去这个启动画面。
破解过程:
用TRW2000载入EncryptGenie,程序运行后,弹出对话框,要求注册。输入大名maomao,再随便输入一些东东作为注册码,先不要按“注册”按钮。按下CTRL+N,被TRW中断,在TRW中输入bpx
getwindowtexta(windows读取对话框中text的函数),按F5回到EncryptGenie,现在按下“注册”,程序立刻被TRW拦截。在TRW中输入承bd
*,再输入pmodule,现在已经来到EncryptGenie的领空:
==============================================================
0177:0040151D CALL EDI
0177:0040151F PUSH BYTE +1E <=====光标停在这一行
0177:00401521 PUSH DWORD 0043EA64
0177:00401526 PUSH DWORD 0415
0177:0040152B PUSH EBX
0177:0040152C CALL ESI
0177:0040152E PUSH EAX
0177:0040152F CALL EDI
0177:00401531 PUSH BYTE +02
0177:00401533 PUSH BYTE +00
0177:00401535 CALL 00418D70
0177:0040153A PUSH BYTE +00
0177:0040153C PUSH DWORD 0043EA64 <=====下D 43EA64可看到输入的注册码
0177:00401541 PUSH DWORD 0043F32C <=====下D 43F32C可看到我的大名'maomao'
0177:00401546 CALL 004288E0 <=====计算注册码的call
0177:0040154B ADD ESP,BYTE +14 ┓
0177:0040154E NEG EAX
┃ 如果注册码正确,上面的call将返回EAX=0,
0177:00401550 SBB EAX,EAX
┃ 变换后为EAX=1
0177:00401552 INC EAX
┛
0177:00401553 MOV [0043F778],EAX
0177:00401558 JZ NEAR 004015FA <=====执行到这里,被跳走你就完了
0177:0040155E MOV EDI,0043F32C
0177:00401563 OR ECX,BYTE -01
0177:00401566 XOR EAX,EAX
0177:00401568 REPNE SCASB
==============================================================
在0177:00401546 CALL 004288E0 计算注册码的一行上按F9下断点,再按F5返回EncryptGenie,这时对话框中的注册码被清空。重新输入一些数字,按“注册”按钮后,TRW中断在0177:00401546
CALL 004288E0这一行。用F8跟进去:
==============================================================
0177:004288E0 MOV EAX,[ESP+04]
0177:004288E4 SUB ESP,BYTE +28
0177:004288E7 TEST EAX,EAX
0177:004288E9 PUSH EDI
0177:004288EA JZ 00428959
0177:004288EC MOV EDI,[ESP+34]
0177:004288F0 TEST EDI,EDI
0177:004288F2 JZ 00428959
0177:004288F4 LEA ECX,[ESP+04]
0177:004288F8 PUSH ECX
0177:004288F9 PUSH EAX
0177:004288FA CALL 00428970
0177:004288FF ADD ESP,BYTE +08
0177:00428902 TEST EAX,EAX
0177:00428904 JZ 00428953
0177:00428906 PUSH EBX
0177:00428907 PUSH ESI
0177:00428908 LEA ESI,[ESP+0C] <====这里用D ESI就可看到真正的注册码'BmbqpetshwvkzynD'
0177:0042890C MOV EAX,EDI <====这里用D
EDI可看到输入的注册码'1234567890'
0177:0042890E MOV DL,[EAX] ┓
0177:00428910 MOV BL,[ESI] ┃比较注册码的第一字节
0177:00428912 MOV CL,DL ┃
0177:00428914 CMP DL,BL ┛
0177:00428916 JNZ 00428936 <====不相同就跳走
0177:00428918 TEST CL,CL
0177:0042891A JZ 00428932
0177:0042891C MOV DL,[EAX+01]┓
0177:0042891F MOV BL,[ESI+01]┃比较第二字节
0177:00428922 MOV CL,DL ┃
0177:00428924 CMP DL,BL ┛
0177:00428926 JNZ 00428936 <====不相同就跳走
0177:00428928 ADD EAX,BYTE +02
0177:0042892B ADD ESI,BYTE +02
0177:0042892E TEST CL,CL
0177:00428930 JNZ 0042890E <====比较未结束则继续比较
0177:00428932 XOR EAX,EAX
0177:00428934 JMP SHORT 0042893B
==============================================================
OK,整理一下,用户名:maomao,注册码:BmbqpetshwvkzynD
==============================================================
注册机制作:
运行注册机编写器(作者主页http://www.365hz.net),按F8或选择菜单“其它”->“另类注册机”,在弹出的设置框中,进行如下设置:
1、按“浏览”按钮,选择EncryptGenie.exe;
2、按下方“添加”铵钮,添加如下数据:
中断地址:42890E <=====指定在正确注册码算出后中断(请参阅上边代码)
中断次数:1
第一字节:8A <=====MOV
DL,[EAX]的指令的第一个机器代码
指令长度:2 <=====被中断的指令的代码长度
3、在右边注册码选项中选择“内存方式”,并勾选其下方的单选框,选择ESI(注册码被放在ESI所指的内存中);
4、设置用户信息(你的相关资料啦);
5、按“生成”,输入生成的EXE文件名(放到主程序同一目录下)。
运行一下你生成的文件,EncryptGenie被自动运行,并要求注册,输入用户名,注册码随意,按“注册”按钮,OK,真正的注册码就跳出来了!!!
哇,写得手有点累了(刚狂聊了3小时),好了,收工~~~~
==============================================================
- 标 题:申请加入BCG破文3--加密精灵EncryptGenie22注册码破解及注册机制作 (5千字)
- 作 者:三根毛
- 时 间:2001-10-28 2:36:03
- 链 接:http://bbs.pediy.com