= 18、ACDsee for win95 1.0 ================================================= ACDsee for win95 1.0 Error Free wrote: > > ACDsee for win95 1.0 > > 本版的注册核对 routine 和 beta10 的一模一样, ACDsee95 1.0 beta > 10 我讲过了, 本篇就是完全 Copy beta10 的那篇示范, 再改了一下 > 小地方而已. > ----- ----- ----- ----- > 这个程式很好追, 比上次那个 IFA 难追一点点而已, 但是因为注册的 > 运算式蛮复杂的, 所以我就不分析了, 建议直接用强迫跳过去的. > > 想练习破解的人, 此程式说难也不难, 你们不妨只看我的 (1)-(11) 的 > 基本动作, 其它的自己先练习看看. 追的到了, 那你在 Hacker 学院的 > 新生训练也就过啦! > > (1) 用 winice 载入 Win95 . > (2) 执行 acdsee version 1.0, 选择注册, 输入大名. > (3) 注册码先填 78787878 <- 用此数 (78787878) 是习惯问题. > (4) 按 Ctrl_D 进入 winice > (5) S 30:0 L FFFFFFFF '78787878' > > WINICE 会搜出一个位址 ss:ssssssss > > (6) BPM ss:ssssssss <- 设断点 > (7) 按 F5 把控制权还给 acdsee . > (8) 在 acdsee 下按 OK ! 被 WINICE 拦截, 如下 > > xxxx:9EAA REPZ MOVSD > POP ECX ; <- b此点拦下, 你就开始按 F10 > AND ECX,3 > REPZ MOVSB > XOR DX,DX ; <- 按到此, 先停下来 > > (9) 用 BD * 暂停以前的断点 > (10) 用 BPM ES:EDI-8 设另外一个. > (11) 按 F5 返回 acdsee, 一下子又被拦了下来, 如下: > > MOV EDI,EBX > 14F:40363C REPNZ SCASB ; <- 在此点拦下 > NOT ECX > DEC ECX > > (12) 再用 BD * 暂停以前的断点, 用 F10 一直走到如下: > > 注: 你会经过许多判别, B算的 Loop , 自己用眼睛分析一下 > , 利用游标的上下及 F7 键, 来缩简追踪的时间哦! > > 14F:4035C9 CALL 403620 ; <- 你会从此 Subroutine > LEA EAX,[ESP+48] ; <- 返回至此 > > LEA ECX,[ESP+74] ; 想用 '排列组合' 来猜码, > ADD ESP,10 ; <- 可以把断点设在此. > ; 用 "d eax" 或 "d ecx" 来看资料. > > ; 不过此软体用 Username 来顺著猜 '注册码' 并不好猜; 不过你可以牵 > ; N它产生的名字, 就是先选注册码, 再用 '排列组合' 反推可注册成功 > ; 的 Username , 就比较容易多了. > > MOV DL,[EAX] ; > CMP DL,[ECX] ; <- 比较奇数字符* > 4035DD JNZ $Error ; -> 跳到 4035F9 就玩完了 > > OR DL,DL > JZ $Yes ; <- 是零, 就是比较完了. > > MOV DL,[EAX+1] > CMP DL,[ECX+1] ; <- 比较偶数字符* > JNZ $Error ; -> 让 CPU 走到 $Error 就寿了. > OR DL,DL > JNZ $next.. ; 不是零, 就是比较还没完 > > $Yes XOR EAX,EAX ; <-- Yes! > JMP $Ret_Rdy > ; 最後的提示: > $Error SBB EAX,EAX ; <- 绝对不能让 cpu 走到这一行 > SBB EAX,-01 ; > : : > $Ret_Rdy : : > > (13) 重点就是在 4035DD , 要害我已经告诉你们了, 其它的自己想办 > 法改. 会的人不要说答案, 我一定要强迫想入门 Hacker 的线上 > "魔友" 去看组语的书. > > 一个 Soft-ICE 的指令说明: 当你想看机械码时, 可以用 code on .. > -- > 喜欢破解注册资料者, 请接如下 Group, 保证让你一路爽到底 > alt.crackers alt.cracks alt.binaries.warez.ibm-pc