請各位用ARCHIE找  BOOKMM.ZIP
 是一個 NETSCAPE 的 BOOKMARK 和IE 的我的最愛轉換的程式
 不註策只能用十次
 解開後    BOOKMM.EXE   217,600 BYTE

這是小弟的一篇拙文...但也花滿多心思. ERROR FREE 大哥說過 要破解軟體就要
花時間  有耐心  不怕煩   還要會一點組合語言...沒學過趕快買本書來學吧!
小弟才學會玩 SOFTICE 一個多月 ,要學的仍然很多

或許有人會問...我POST 此篇目的??

我只是想和大家分享經驗...  TW.CRACK.CRACK 又關了
ERROR FREE 大哥 大概太忙...好久沒看到他的破解文件了

此軟體很好破...對高手根本不算什麼...
但對像我這種 HACKER 新生...就要花時間了

我只是拋磚引玉...
希望各位高手破了什麼軟體...也POST 出來...造福世人

但現在越來越多的 CRACKER HACKER 站都關了...不知我有無犯法....
沒意外...我大概一個禮拜 POST 一篇我的破解心得...但春假 ...考試就不行了
請大家包涵

  用ERROR FREE大哥的 " 78787878大法 " 記住喔!
  (1) 用 winice 載入 Win95
  (2) 執行  BOOKMM.EXE 先選擇註冊
  (3) 先填 NAME : 隨意  CODE : 78787878(習慣)
  (4) 按 Ctrl_D 進入 winice
  (5) 下指令 S 30:0 L FFFFFFFF '78787878'
       WINICE 會搜出一個位址 ss:ssssssss

  (6) BPM ss:ssssssss   <- 設斷點的方法  ( 用法: BPM  [ADDRESS], 此法很好用 )
  (7) 按 F5 把控制權還給 BOOKMM
  (8) 在 BOOKMM 下按 OK ! 被 WINICE 攔截, 如下
  (9) 用 BD * 暫停以前的斷點
 (10) 用 BPM ES:EDI-8 設另外一個. ; <- 因為你打 8 個字, 所以減 8
 (11) 按 F5 返回 BOOKMM 一下子又被攔了下來
      ( 以後此點簡稱"  二攔 "  因為攔兩次嘛)
 (12) 二攔 後按四次 F12 到了 (F12 是 跳離這個 CALL )
        (按五次就跑出失敗視窗了 就從四次開始 TRACE )
        0137:00401643   CALL .....
        0137:00401649   TEST  EAX , EAX  <-- 從此開始
          請在此設斷點 知到如何設了吧!
        0137:0040164B   JNZ  0040167D
        ^^^^ ^^^^^^^^
          ︿    ︿
          |     |___ offset     應該和我一樣
          |
      SEGMENT
        可能和我不一樣
(13) 按F10 (單步執行)...一直按  走到了

         0137:004016a5 call ...
         用 F10 帶過此call必完蛋
      看有無方法可避開此 call
      按 F6 讓游標上去 按page up 或上下觀察
      ( 若游標 在上面...按F9 可設斷點... 斷點 的那行顏色不太一樣,看到了吧!
       BPM [ADDRESS] 也可設斷點  看各位喜歡那一種 )

(14)  xxxx:0040167b  jmp 004016aa
       可跳開   xxxx:004016a5
       但剛才沒走到  why??
       因為  xxxx:00401649   TEST  EAX , EAX
             xxxx:0040164b jnz 0040167d 那行   有跳躍
(15)
     xxxx:0040164b jnz 0040167d
    上面兩行 xxxx:00401643 call 必有問題
    剛剛有設斷點吧 !再註冊一次 到 此call 按f8進入觀察
    目標  讓eax = 0
(16)

    xxxx:bff772ec  push ebx <-- 從此開始
    按f10 .....    走到了

    xxxx:bff71310 call  bff71247

    用f10帶過此call必完蛋  , 設斷,再註冊一次,用f8進入

(17)
  xxxx:bff71247  push ebx <-- 從此開始
    按f10 .....    走到了
  xxxx:bff71277  call bff71215
  xxxx:bff7127c  leave
  xxxx:bff7127d  ret   <-- 出來了
  eax 當然不是 0
(18)
  相信大家都知道如何做了吧
  xxxx:bff71277  call bff71215 設斷,再註冊一次,用f8進入

(19)
  xxxx:bff71215  push  ebp   <-- 從此開始
   按f10 .....    走到了

 xxxx:bff7121a  mov esi,[ebp+8]
 xxxx:bff7121d  mov edi,[ebp+c]
 xxxx:bff71220  xor eax,eax
 xxxx:bff71222  mov ah,[esi]
xxxx:bff71224   mov al,[edi]
xxxx:bff71226   cmp ah,alM
xxxx:bff71228   jb  bff71235
xxxx:bff7122a   ja  bff71235
xxxx:bff7122c   or ax,ax
xxxx:bff7122f   jz  bff71241
xxxx:bff71231   inc esi
xxxx:bff71232   inc edi
xxxx:bff71233   jmp bff71222  ( 比較下一個字元)

 這就是比較的核心

 當程式走到了  xxxx:bff71226   cmp ah,al
 下指令  d esi  可查看記憶體 看到剛才輸入的字了吧
 下指令  d edi  可查看記憶體 看到 五個數字吧
 那五個數字就是註冊碼了
 就這樣  破解了 ...