菜鸟破解录 JPEG Optimizer3.15
软件名称: JPEG Optimizer
软件版本: 3.15
软件大小: 1408KB
软件授权: 共享软件
使用平台: Win95/98/NT
发布公司: http://www.xat.com
软件简介: 该软件能对JPG图形文件压缩50%而不损失画质,自定压缩比,能即时显现压缩后的图片,让你比较差异,效果相当不错。
作 者:xiA Qin
级 别:很菜....很菜.....
解密日前:2000年8月11日
解密工具:Trw2000 1.22
破解目的:学习注册码的破解。
说 明:
本文是在我的软件破解记录上整理出来的。如若有纰漏,请各位大侠多指教!
首先运行JPEG Optimizer
输入注册信息
Registration code: 12345678 &只能输入8个字符(程序会检查注册码的位数)
下指令bpx hmemcpy //下中断点
按F5回到程序,按确定,这时会被Trw2000拦截到。
下指令bd * //屏障中断点
下指令pmodule //直接跳到程序的领空
按F10来到下面指令
.................
015F:0042947E LEA EAX,[EBP-0C]
015F:00429481 XOR EDX,EDX
015F:00429483 MOV [EBP-10],EDX
015F:00429486 LEA EDX,[EBP-10]
015F:00429489 INC DWORD [ESI+1C]
015F:0042948C CALL 0044CE07
015F:00429491 LEA EDX,[EBP-10]
015F:00429494 MOV EAX,EDI
015F:00429496 MOV EDX,[EDX]
015F:00429498 CALL 0044585C
015F:0042949D DEC DWORD [ESI+1C]
015F:004294A0 LEA EAX,[EBP-10]
015F:004294A3 MOV EDX,02
015F:004294A8 CALL 0044C524
015F:004294AD DEC DWORD [ESI+1C]
015F:004294B0 LEA EAX,[EBP-0C]
015F:004294B3 MOV EDX,02
015F:004294B8 CALL 0044C524
015F:004294BD MOV WORD [ESI+10],2C
015F:004294C3 XOR ECX,ECX
015F:004294C5 MOV [EBP-08],ECX
015F:004294C8 LEA EDX,[EBP-08]
015F:004294CB INC DWORD [ESI+1C]
015F:004294CE MOV EAX,[EBX+01C8]
015F:004294D4 CALL 0044582C
015F:004294D9 MOV WORD [ESI+10],08
015F:004294DF MOV WORD [ESI+10],38
015F:004294E5 XOR ECX,ECX
015F:004294E7 MOV [EBP-14],ECX
015F:004294EA LEA EDX,[EBP-14]
015F:004294ED INC DWORD [ESI+1C]
015F:004294F0 MOV EAX,[EBX+01C8]
015F:004294F6 CALL 0044582C
015F:004294FB LEA EAX,[EBP-14]
015F:004294FE CALL 0044C77E
015F:00429503 CMP EAX,BYTE +08 //第一个拦路虎,检查注册码的位数,8位
015F:00429506 JNZ 00429523
//注册码位数不等于8,就跳。
015F:00429508 CMP DWORD [EBP-08],BYTE +00
015F:0042950C JZ 00429513
015F:0042950E MOV EDX,[EBP-08]
015F:00429511 JMP SHORT 00429518
015F:00429513 MOV EDX,004825B3
015F:00429518 PUSH EDX
015F:00429519 CALL 0042A0C4 //通过下面的分析,可以肯定此CAll有问题。按F8进入。
015F:0042951E POP ECX
015F:0042951F TEST AL,AL
//以al=1作为注册标志
015F:00429521 JNZ 00429527
//不跳则失败。
015F:00429523 XOR EAX,EAX
015F:00429525 JMP SHORT 0042952C
015F:00429527 MOV EAX,01
015F:0042952C PUSH EAX
015F:0042952D DEC DWORD [ESI+1C]
015F:00429530 LEA EAX,[EBP-14]
015F:00429533 MOV EDX,02
015F:00429538 CALL 0044C524
015F:0042953D POP ECX
015F:0042953E TEST CL,CL
015F:00429540 JZ NEAR 0042969E
.......................
按F8进入00429519 CALL 0042A0C4
015F:0042A0C4 PUSH EBP
015F:0042A0C5 MOV EBP,ESP
015F:0042A0C7 ADD ESP,BYTE -0C
015F:0042A0CA PUSH EBX
015F:0042A0CB MOV EAX,[EBP+08]
015F:0042A0CE LEA EBX,[EBP-0C]
015F:0042A0D1 MOV DL,[EAX]
015F:0042A0D3 MOV [EBX],DL
015F:0042A0D5 MOV CL,[EAX+01] <-|
015F:0042A0D8 MOV [EBX+01],CL |
015F:0042A0DB MOV DL,[EAX+02] |载入
015F:0042A0DE MOV [EBX+02],DL |假的注册码
015F:0042A0E1 MOV CL,[EAX+03] |
015F:0042A0E4 MOV [EBX+03],CL |
015F:0042A0E7 MOV DL,[EAX+04] |
015F:0042A0EA MOV [EBX+04],DL |
015F:0042A0ED MOV CL,[EAX+05] |
015F:0042A0F0 MOV [EBX+05],CL |
015F:0042A0F3 MOV DL,[EAX+06] |
015F:0042A0F6 MOV [EBX+06],DL |
015F:0042A0F9 MOV CL,[EAX+07] |
015F:0042A0FC MOV [EBX+07],CL |
015F:0042A0FF MOV AL,[EAX+08] <-|
015F:0042A102 MOV [EBX+08],AL
015F:0042A105 MOV BYTE [EBX+09],00
015F:0042A109 MOVSX EAX,BYTE [EBX]
015F:0042A10C PUSH EAX
015F:0042A10D CALL 00472D34
015F:0042A112 POP ECX
015F:0042A113 CMP EAX,BYTE +4A
<--比较注册码第1位
015F:0042A116 JNZ 0042A171
<--不相等,就跳
015F:0042A118 MOVSX EDX,BYTE [EBX+01]
015F:0042A11C PUSH EDX
015F:0042A11D CALL 00472D34
015F:0042A122 POP ECX
015F:0042A123 CMP EAX,BYTE +53
<--比较注册码第2位
015F:0042A126 JNZ 0042A171
<--不相等,就跳
015F:0042A128 MOVSX ECX,BYTE [EBX+02]
015F:0042A12C CMP ECX,BYTE +24
<--比较注册码第3位
015F:0042A12F JNZ 0042A171
<--不相等,就跳
015F:0042A131 MOVSX EAX,BYTE [EBX+03]
015F:0042A135 CMP EAX,BYTE +32
<--比较注册码第4位
015F:0042A138 JNZ 0042A171
<--不相等,就跳
015F:0042A13A MOVSX EDX,BYTE [EBX+04]
015F:0042A13E CMP EDX,BYTE +38
<--比较注册码第5位
015F:0042A141 JNZ 0042A171
<--不相等,就跳
015F:0042A143 MOVSX ECX,BYTE [EBX+05]
015F:0042A147 CMP ECX,BYTE +39
<--比较注册码第6位
015F:0042A14A JNZ 0042A171
<--不相等,就跳
015F:0042A14C MOVSX EAX,BYTE [EBX+06]
015F:0042A150 CMP EAX,BYTE +32
<--比较注册码第7位
015F:0042A153 JNZ 0042A171
<--不相等,就跳
015F:0042A155 MOVSX EDX,BYTE [EBX+07]
015F:0042A159 CMP EDX,BYTE +31
<--比较注册码第8位
015F:0042A15C JNZ 0042A171
<--不相等,就跳
015F:0042A15E MOV DWORD [0048A408],69FC4314
015F:0042A168 CALL 00404924
015F:0042A16D MOV AL,01
015F:0042A16F JMP SHORT 0042A18C
015F:0042A171 PUSH EBX
015F:0042A172 CALL 0042CA48
015F:0042A177 POP ECX
015F:0042A178 TEST AL,AL
015F:0042A17A JZ 0042A180
015F:0042A17C MOV AL,01
015F:0042A17E JMP SHORT 0042A18C
015F:0042A180 MOV DWORD [0048A408],9603BCEB
015F:0042A18A XOR EAX,EAX
015F:0042A18C POP EBX
015F:0042A18D MOV ESP,EBP
015F:0042A18F POP EBP
015F:0042A190 RET
.......................
我们把比较的数字抄下了分别是
1 2 3 4 5 6 7 8
4A 53 24 32 38 39 32 21
查ASCII字符表,十六进制。
十六进制: 4A 53 24 32 38 39 32 21
分别对应: J S $ 2 8 9 2 1
整理一下,输入注册信息
Registration code:JS$28921
成功了。
注册信息在注册表中的
[HKEY_CURRENT_USER\Software\XA Tech\JpegOpt]
"Code"="JS$28921"
- 标 题:菜鸟破解录 JPEG Optimizer3.15 (6千字)
- 作 者:xiA Qin
- 时 间:2000-8-14 8:28:17
- 链 接:http://bbs.pediy.com