nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
那么學習軟件破解需要些什么基礎呢?
一,需要匯編語言以及C語言功底,由于搞破解和工程逆向常常需要分析程序的執行過程,但是分析對象基本上是沒有源代碼的,只有通過反匯編工具將程序反匯編,分析這些靜態的匯編代碼的關鍵部分。必要是需要將匯編片段還原為C語言,以便分析算法。
二,會熟練的使用常用的調試工具,常見的動態調試工具有大名鼎鼎的DriverStudio(SoftICE)、OllyDbg、WinDbg。靜態反匯編工具如IDA pro、W32DSAM等。一些常見的監控軟件工具,因為很多軟件會在系統或者注冊表中寫入特定信息,到時我們并不知道這些細節,但是專用的監控程序能把他全部找出來!
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
四,了解所在平臺的操作系統一些細節,比如消息機制、內存拷貝、關鍵的系統函數,這些對破解有重要作用,高手通過這些可能很快就能找到關鍵位置,而菜鳥可能在匯編的苦海中把自己都轉暈了也找不到破解點。
五,需要學會如何脫掉常見的加殼,現在軟件提供商或者作者對軟件保護意識越來越強,稍微好的軟件大多被專業的加密軟件加了一層防破解的殼,這些殼在正常運行時會首先運行殼的部分,殼再動態把真正的程序代碼解碼到內存中運行起來,脫殼的基本方法就是當殼把軟件解密到內存后,將內存中的代碼抓出,再加一些必要的修復,使之成為普通一樣的未加密程序,否則直接破解是無法正常進行的。目前常見的加殼工具都有對于的脫殼工具。
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
七,堅韌不拔毅力,破解這個東西除了有堅實的功底之外,需要有毅力才行,軟件破解并不是想象的那么簡單,即使一個破解經驗是實力很強的人也會遇到很多困難,只有堅持不懈才可能看到成功的希望,并且不是所有的軟件都能破解成功的,有的可能話了很多時間,最后還是無能為力。
破解基本可以分成完全破解和不完全破解。完全破解就是真正破解出加密的算法過程并找到破解方法,常見的注冊機一般都是這種;不完全破解是指無法找到加密算法,但是找到了密碼或者通過修改二進制代碼達到暴力破解的目的,典型的是注冊機需要選擇主執行文件,安裝后用特定提供的執行文件替換原始安裝中相同名字的文件就屬于這種。
如果了解以上的基本知識,再加上一些基本破解練習,基本就入手了,可以嘗試破解一些軟件,你準備好了嗎?
如果在學習中遇到困惑可以直接加編程導師微信號coderonline,獲取自學指南.
如果對編程感興趣,想了解更多的編程知識,解決編程問題,以及入門指導,幫你解決編程中遇到的困惑,我們這里有java高手,C++/C高手,windows/Linux高手,android/ios高手,請大家關注微信公眾號:程序員互動聯盟或者coder_online