asmstudio5.0完全完美破解版的誕生過程(和初學者共同學習!) (1千字)

看雪資料發表於2001-05-02

這是個比較容易破解的軟體。許多人都這樣說。我這裡並不是要說如何暴破它,我不知道如何作序號產生器,所以呢,想投機取巧,利用他本身來獲得註冊碼,當然這是在暴破的基礎上。也就是說,把它改成一個序號產生器。呵呵呵,我想,這又是一種好的笨辦法啦。
step1. 暴破
:bpx hmemcpy
ctrl+N
press "OK"
bd
pmodule
F12 兩次,走到415a22 有cmp ecx,[exa+08]
緊接著下一句是跳轉語句。跳則over,不跳則OK!
不讓它跳,當然是將這條語句改為909090909090了。暴破完畢!
當然,你把cmp 改成mov 也行,而且更簡單。不讓他比較,而是
讓他把正確的註冊碼賦值給ecx,呵呵呵。
========
可是這樣有個後遺症,因為它會將不正確的註冊碼寫入登錄檔,
在重新執行軟體時,一檢查,是錯的,又會把它變成未註冊的試用版。怎麼辦???
step 2 作序號產生器
既然這樣,讓它把正確的註冊碼寫入登錄檔就行了。
剛才不是有6個位元組都是nop指令嗎?太浪費了,讓他作點有益的事情吧經過跟蹤,發現後面有一條語句為mov edx,[esp+01f0]
此句和前面ecx的賦值語句(mov ecx,[esi+01f0])相似,而這裡面
(esi+01f0)放的就是我們輸入的錯誤的註冊碼,只不過是16進位制的而已。那好,我們把這個單元放入正確的註冊碼。
把909090909090改為898EF0010000就可以了。
實踐是檢驗真理的唯一標準。試試看,重新執行軟體後,它仍是
正式版!而且你不放心的話,可以用regedit開啟登錄檔來看,是不
是多了一個regcode的鍵名?鍵值就是真正的註冊碼啦。
這樣,一個自動註冊的“序號產生器”就誕生了!
OK!大功告成,打個Kiss!
By The Way,有人可能會問,你怎麼知道機器碼要改成898EF001000000?
試嘛。 先用
:a 0167:415a28
0167:415a28 mov [esi+01f0],ecx
此時程式碼區肯定不是象上面的語句一樣,而是
mov [esi+DOSMSG_BackFill_Allowed],ecx

:d 0167:415a28 可以看到此條語句的程式碼為898e00000000
不合要求。怎麼辦?在程式碼區不能實現,就直接在記憶體資料區改嘛
把滑鼠移到記憶體資料區,把898e後面兩個位元組改為0f10就行了。
碰到不知道語句的程式碼是什麼時,都可以用這個方法來試一下。
呵呵呵,這又是一種好的笨辦法啦。
 

相關文章