= 34、HTMASC 2.1 for Win 算注册码 ====================================== HTMASC 2.1 for Win 算注册码 这程式可以把HTML格式文件换为TXT文件. HTMSC21.zip (474,571 BYTE) 1.这程式非常容易破解,实际追过你才知道,很适合新手来追... OK...安装完後可以执行 Register 选单,输入 Name:jxli Register Number:78787878 2.叫出 Soft-ICE 下 bpx hmemcpy 来中断,回到程式按下确定, 被拦下後,开始一直按 F10,直到... XXXX:3F2E CALL 2BEF:324D <-- 错误的讯息 XXXX:3F33 LEAVE 3.往上找可以跳过这个 CALL 的指令,把重点整理一下... XXXX:3E32 CALL XXXX:3B24 XXXX:3E37 MOV [BP-08],AX XXXX:3E3A MOV [BP-06],DX XXXX:3E3D MOV AX,[BP-04]____ XXXX:3E40 MOV DX,[BP-02]____] INPUT注册码 XXXX:3E43 CMP DX,[BP-06]<--注册码应该是五位,后输入10838. XXXX:3E46 JZ 3E4B XXXX:3E48 JMP 3F1B XXXX:3E4B CMP AX,[BP-08] <-- [EBP-08]是注册码 XXXX:3E4E JZ 3E53 : : XXXX:3F2E CALL XXXX:324D <-- 错误的讯息 XXXX:3F33 LEAVE 4.嘻...收工罗,没有比今天破的还简单了吧,AX 是 2A56 (10838) [EBP-8] 是 E21B (57883) 5.最後整理,注册码.... Name:jxli Register Number:57883 = 35、HardWare Infomation 4.12 Register Key形式 ============================= HardWare Infomation 4.12 Register Key形式 目前偶正在破解 HW-Info v4.12 ,碰到了困难不知如何解决,想说集思广益, 大家一起来研究研究... 此一版的 HW-Info v4.12 的注册码形式改成了下列型式(以下简称 HW-Info v4.12 为 HW4): 一共是三十个数字,可有英文字母 A ~ F,整串注册码(包含 hw 均不分 大 小写) +-----------------------------------------+ HW-112222333344445555666677778888 HW4 在读取了上述注册码会先判断最前面的两个字母是否为 hw,若是 hw 则将後面三十个数字依序拆成一个位元组及七个字组,我把它称为 Key1 ~ Key8,其中 key2 及 key8 的功用有点像是 checksum, 若这两个 key 不对的话 马上会出现注册失败的讯息,这两个key倒是没什麽,把程式码演算的过程反算即 可,麻烦的是剩下来的6只key. 在上面那关通过後hw4会先把名字编码并把编码後的名字前12个位元组拿 出来对剩下来的6只key做一段演算(这里也可以反算,因为都是 ROL, ROR, XCHG, XOR, ADD, SUB 这些运算),後来把编码後的名字及 Key1,3,4,5,6,7存到 hwinfo.exe 的档尾. 当hwinfo.exe再度的被执行时会把储存在档尾的 Key1,3,4,5,6,7 拿出来再和 被编码的名字做一次演算後利用堆叠传给一个副程式,而这个副程式会把堆叠中 的叁数(Key3,4,5,6,7 及几个常数)拿来解另一个副程式并把被编码的名字的位 址及其它一些必须的资料放在堆叠後呼叫刚才被解码的副程式. 我的困难是这个被解码的副程式解出来到底是什麽并不是我们已知的东西 ,那麽我可以用什麽方法可以在最短的时间内解出注册码?我把解副程式的那个 副程式的内容key 在下面. push bp mov bp,sp push ds push di push bp push cs pop ds mov si,5e6ch ; 被解码的副程式的开始位址 mov bx,[bp+a] ; Key3 mov dx,[bp+c] ; Key4 mov di,[bp+e] ; Key5 mov cx,[bp+10h] ; Key6 repeat: xor [si],bx add [si+2],dx sub [si+4],di xor [si+6],cx not word ptr [si+6] rol bx,1 ror cx,1 neg dx xor di,1234h xchg cx,dx xchg di,bx add si,8 cmp si,5each jb repeat lds si,[bp+6] ; 被编码的名字的启始位址 mov dx,[bp+16h] ; 3Ch mov bx,[bp+14h] ; 5D03h push cs call 5e6c ; 被解码的副程式, 从前面几列来看应该是把被编码的名 ; 字解码到某个地方,偶曾经试着把此一指令跳过,hw4便 ; 不会出现无法继续的讯息了(不过名字的部份就是一堆 ; 乱码了,but hw4 已经加上外壳了,不太好拨 pop bp pop di pop si pop ds pop bp retf