ScreenRecorder1.2注册码破解及注册机制作
作者:maomao
软件:ScreenRecorder1.2
ScreenRecorder是一个屏幕抓录软件,可自定义窗口大小和录制速度,并可同时录制声音,有多种音频属性调整,支持预览,生成AVI文件。
下载:http://www.interkodex.com/screenrecorder12.zip(1.03MB)
工具:Trw2000 v1.23 注册机编写器1.32
日期:2001-10-25
一直没好意思写破文,主要是因为本人自感水平较菜,解密高手如云。现在看到大家纷纷加入BCG和CCG,我再也坐不住了,赶紧写下第一篇申请加入组织的破文兼注册机制作过程,不足之处,望各位高手多多指点……
:)
一、注册码破解
首先,用 Language 2000 侦测(纯属条件反射的结果),居然没有加壳, 还是老外比较友好。
现在当然是运行ScreenRecorder了,出来一个未注册的对话框,完全在情理之中,不要理它,按下工具条上的Help按钮(居然没有菜单),选择Enter
registration code,会弹出一个注册框,OK,观察一下,有Name和Key两个再熟悉不过的输入框,看来它是根据用户名生成注册码。二话不说,在Name中输入大名maomao,Key中填1111-1111-1111-1111(从头一直按住1不放啦,省事多了*^_^*
),先不要急着按“OK”,还没到火候。
下面,当然是祭起神兵利器TRW2000了,运行后按Ctrl+N激活,下s 30:0 l ffffffff 'maomao',在内存中寻找输入的用户名,找到地址80f6fcf2,再下bpm
30:80f6fcf2,只要注册过程一读取这个值,嘿嘿......F5退出TRW,现在按“OK”,一下子被TRW拦截,各位,请看……
0157:9EE6 F36766A5 REP MOVSD
0157:9EEA 6659 POP
ECX <=========光标停在这里
0157:9EEC 6683E103 AND ECX,BYTE
+03
0157:9EF0 F367A4 REP MOVSB
0157:9EF3 33D2 XOR
DX,DX
0157:9EF5 33C0 XOR
AX,AX
0157:9EF7 EB43 JMP
SHORT 9F3C
下命令bd *,中断所有断点,再下pmodule,现在我们已经来到ScreenRecorder的领空了。
一直按着F10,大约经过7个RET后,现出注册错误对话框,下面是出错一段的代码:
0177:0048A4E0 CALL 0048A75C <=====比较注册码的call
0177:0048A4E5 TEST AL,AL
0177:0048A4E7 JZ NEAR 0048A572<=====这里跳到出错点
0177:0048A4ED LEA EAX,[EBP-0C]
0177:0048A4F0 MOV ECX,[ESI+24]
0177:0048A4F3 MOV EDX,0048A5D8
0177:0048A4F8 CALL 00403E1C
0177:0048A4FD MOV ECX,[EBP-0C]
0177:0048A500 MOV DL,01
0177:0048A502 MOV EAX,[00470288]
0177:0048A507 CALL 00471510
0177:0048A50C MOV ESI,EAX
0177:0048A50E LEA EDX,[EBP-10]
0177:0048A511 MOV EAX,[EBX+02DC]
0177:0048A517 CALL 00488554
0177:0048A51C MOV EAX,[EBP-10]
0177:0048A51F PUSH EAX
0177:0048A520 MOV ECX,0048A5E8
0177:0048A525 MOV EDX,0048A5F8
0177:0048A52A MOV EAX,ESI
0177:0048A52C MOV EDI,[EAX]
0177:0048A52E CALL NEAR [EDI+04]
0177:0048A531 LEA EDX,[EBP-14]
0177:0048A534 MOV EAX,[EBX+02E0]
0177:0048A53A CALL 0042E070
0177:0048A53F MOV EAX,[EBP-14]
0177:0048A542 PUSH EAX
0177:0048A543 MOV ECX,0048A5E8
0177:0048A548 MOV EDX,0048A604
0177:0048A54D MOV EAX,ESI
0177:0048A54F MOV EDI,[EAX]
0177:0048A551 CALL NEAR [EDI+04]
0177:0048A554 PUSH BYTE +00
0177:0048A556 MOV CX,[0048A60C]
0177:0048A55D MOV DL,03
0177:0048A55F MOV EAX,0048A618
0177:0048A564 CALL 004517A0
0177:0048A569 MOV EAX,ESI
0177:0048A56B CALL 00402E88
0177:0048A570 JMP SHORT 0048A587
0177:0048A572 PUSH BYTE +00<========出错点
0177:0048A574 MOV CX,[0048A634]
0177:0048A57B MOV DL,01
0177:0048A57D MOV EAX,0048A640
0177:0048A582 CALL 004517A0 <=======F10经过这个call就出错了
0177:0048A587 MOV EAX,EBX
0177:0048A589 CALL 00402E88
用F9对0177:0048A4E0 CALL 0048A75C设断点,按F5回到主程序,重新填写注册内容后按“OK”,光标停在这一行上,用F8跟进去,不久就跟到这里:
0177:0048A7A1 LEA EDX,[EBP-18]
0177:0048A7A4 MOV EAX,[EBP-04]
0177:0048A7A7 CALL 0040848C
0177:0048A7AC MOV EDX,[EBP-18]<=====取用户名到EDX
0177:0048A7AF LEA ECX,[EBP-14]
0177:0048A7B2 MOV EAX,EBX
0177:0048A7B4 CALL 0048A890 <=====计算真正注册码
0177:0048A7B9 MOV EAX,[EBP-14]
0177:0048A7BC LEA EDX,[EBP-10]
0177:0048A7BF CALL 0040848C
0177:0048A7C4 MOV EDX,[EBP-10]<=====真正注册码到EDX,下D
EDX就可看到我的注册码
8H0G-C58T-VQAS-TT8U
0177:0048A7C7 POP EAX <=====弹出用户输入的注册码
0177:0048A7C8 CALL 00403EE0 <=====进行比较,不同则ZF=0
0177:0048A7CD SETZ AL <=====设置标志
AL=ZF,1表示注册成功,0失败
0177:0048A7D0 MOV EBX,EAX <=====存储标志
0177:0048A7D2 XOR EAX,EAX
0177:0048A7D4 POP EDX
0177:0048A7D5 POP ECX
0177:0048A7D6 POP ECX
0177:0048A7D7 MOV [FS:EAX],EDX
0177:0048A7DA PUSH DWORD 0048A7F4
0177:0048A7DF LEA EAX,[EBP-18]
0177:0048A7E2 MOV EDX,06
0177:0048A7E7 CALL 00403B74
0177:0048A7EC RET
0177:0048A7ED JMP 004035E8
0177:0048A7F2 JMP SHORT 0048A7DF
0177:0048A7F4 MOV EAX,EBX <=====取回标志
0177:0048A7F6 POP EBX
0177:0048A7F7 MOV ESP,EBP
0177:0048A7F9 POP EBP
0177:0048A7FA RET
虽然可以在“取回标志”时用mov al,1来爆破,但不知程序的其它代码段有没有陷阱,所以嘛,还是做个注册机。请看......
二、注册机的制作
运行注册机编写器(作者主页http://www.365hz.net),按F8或选择菜单“其它”->“另类注册机”,在弹出的设置框中,进行如下设置:
1、按“浏览”按钮,选择ScreenRecorder.exe;
2、按下方“添加”铵钮,添加如下数据:
中断地址:48A7C7 <=====指定在正确注册码算出后中断(请参阅上边代码)
中断次数:2 <=====程序启动时要计算已保存的注册信息,我们忽略它,
在第二次(重新注册)时中断
第一字节:58 <=====POP
EAX的指令代码第一字节
指令长度:1 <=====被中断的指令的代码长度(POP
EAX是单字节代码)
3、在右边注册码选项中选择“内存方式”,并勾选其下方的单选框,选择EDX(注册码被放在EDX所指的内存中);
4、设置用户信息(你的相关资料啦);
5、按“生成”,输入生成的EXE文件名(放到主程序同一目录下)。
运行一下你生成的文件,哇,没有出现注册码,而ScreenRecorde已经运行了!不要紧张,现在我们来注册一下试试:输入你的大名*****,Key中随便输入一些数字或字母,按“OK”,哈哈,你的注册码已经完整的躺在注册机编写器的对话框中了!还不快使用copy->Paste大法?!
解密10分钟,写作1.5小时......现在是凌晨2:01,为了明天更好的工作,收工~~~~
- 标 题:申请加入[BCG]的第一篇破文,新手之作,请多多指教 (6千字)
- 作 者:三根毛
- 时 间:2001-10-26 2:18:07
- 链 接:http://bbs.pediy.com