經常使用軟件註冊機機器碼破解方法及教程

經常使用軟件註冊機機器碼破解方法及教程

不知不覺,接觸軟件逆向破解已經N個年頭了,從當初的門外漢到小白再到如今略有所成,這個過程只有經歷過才知道其中的苦與樂;
有無知、困惑、痛苦、驚喜、徹悟、欣慰……有無助的軟件脫殼,茫然的代碼分析,有無趣的反覆測試;
有人說破解不該該程序員乾的事,我回復我不是程序員;
有人說.NET程序太沒難度了,去破安卓,後來我真開始研究起安卓來;
雖然很忙,時間少,但天天晚上都要抽些時間來關注逆向開發技術網;雖然並無從破解中獲取物質利益,但我願意將本身的心得或做品分享給你們。無論怎樣,它將做爲個人一門興趣愛好繼續發展下去。
本文爲詳細分析,新手們也能夠嘗試着作一下。程序員

工具/原料

  • 對象描述: 幾年前的一款地圖下載軟件,如今估計已經沒有人使用了;
  • 操做系統: Win7 64位原版(因爲筆記本配置太差,虛擬機都沒裝)
  • 使用工具:de4dot (脫殼).NET Reflector(主要分析工具)、Reflexil(修改,它是.NET Reflector插件)、ILSpy(調試)、VS(輔助分析、寫註冊機)
  • 免責聲明:本教程僅供研究學習;

方法/步驟

  1. 1

    安裝試用去官網下載安裝,在幫助文檔的說明中,分別說明了共了免費版、標準版、專業版和企業版,其功能與價格成正比。算法

    經常使用軟件註冊機機器碼破解方法及教程
  2. 2

    試用,它是試用版,有功能限制,好比下載的等級、數據量大小等,這是通常的商業軟件模式。在試用過程當中,發現其限制的地方,爲後面的尋找關鍵做好準備。數據庫

    經常使用軟件註冊機機器碼破解方法及教程
  3. 3

    軟件脫殼脫殼是實際上一個有難度的活,因爲我如今仍是工具黨,還用的脫.NET殼神器de4dot,(你們還有沒有好的脫殼神器或手動脫殼的教程,分享一下唄)它的成功率應該有60%-70%左右。若是把它放在.NET Reflector中出現"索引超出了數組界限"數組

    經常使用軟件註冊機機器碼破解方法及教程
  4. 4

    它的脫殼結果有三種:一是脫殼後代碼沒有了混淆,程序能夠運行,這是最好的結果;二是脫殼後代碼仍是有部分混淆,程序能夠運行,這個結果也勉強能接受;三是脫殼後代碼沒有混淆,程序不能夠運行,這也是最痛苦的(這多半要手動來脫殼)。本程序遇到了兩個關鍵文件AZMap.exe屬於第一種, AZMap.Core.dll屬於第三種,也就是說我不能對AZMap.Core.dl修改,只能修改AZMap.exe。函數

  5. 5

    尋找關鍵將脫殼後的AZMap.exe加到.NET Reflector,使用go to entry point和search是兩種經常使用的入手方法,前者能夠到達程序的main函數,而後可一步一步往下分析,後者找出與限制相關的地方,而後可一 一分析。工具

    經常使用軟件註冊機機器碼破解方法及教程
    經常使用軟件註冊機機器碼破解方法及教程
  6. 6

    Main函數中,沒有什麼異樣,直接進入便可。想一下,下一步,程序主界面出現後就知道你是試用版仍是其餘版本,這說明在主界面出現的過程當中一定有函數或方面來檢測版本問題,而MainForm裏只有兩個函數存在這樣的效果:構造函數和Load函數(其餘程序破解也有相似規律)學習

    經常使用軟件註冊機機器碼破解方法及教程
  7. 7

    果真,MainForm的構造函數中調用了InitLicense方法,趕快標記起來,可能有用測試

    經常使用軟件註冊機機器碼破解方法及教程
    經常使用軟件註冊機機器碼破解方法及教程
  8. 8

    分析InitLicense方法中的代碼,其中RegisterProduct枚舉有Control,Desktop,Server三個。flex

    經常使用軟件註冊機機器碼破解方法及教程
  9. 9

    OK,咱們顯然要進入SN.Registered看看它具體是什麼。等一下,想一下,以我之前的脾氣,我會直接讓這個方法返回想要的類型值,直接暴破,但這裏SN類是AZMap.Core.dll中,咱們不能修改,因此本程序破解的方式是分析它的算法,SN類的Registered是咱們要分析的關鍵。(這句話提及來簡單,這也是我嘗試過好幾回獲得的結論和方面,平時處理過程當中,新手應該不會這麼快就得出這樣的結果,可能也找了好久才找到關鍵,並且還不必定是真正的關鍵,因此要有耐心!)加密

  10. 10

    代碼分析新手入門都是暴破,這樣來得快,我此次也是無可奈何(不會脫殼,高手勿噴)纔來分析它的算法的。下面這個過程可能有點讓人痛苦:SN.Registered函數是讀取許可文件的,其關鍵還在於調用的另一個函數Register

    經常使用軟件註冊機機器碼破解方法及教程
    經常使用軟件註冊機機器碼破解方法及教程
  11. 11

    修改調試下面是在VS中生成示例註冊碼用到的函數,給你們參考一下:

    經常使用軟件註冊機機器碼破解方法及教程
    經常使用軟件註冊機機器碼破解方法及教程
  12. 12

    用VS生成了一個註冊碼,進行註冊後,終於顯示成功,有點小激動!

  13. 13

    測試程序猜中了開頭,沒有猜中故事的結局,重啓後出現這個警告,而且企業版又變回了試用版,點擊肯定後,程序關閉。

    經常使用軟件註冊機機器碼破解方法及教程
  14. 14

    搜索"非法受權"關鍵字,找到了SN.OnlineCheck()函數(在不能修改的AZMap.Core.dll文件中),認識英文的都知道,它是聯網查詢數據庫檢查是否存在 這個SN,接下來怎麼辦?黑數據庫?……return MySQLHelper.CheckMCExisted(R.smethod_0());開個玩笑,咱們接下來分析一下,它出現的位置。

    經常使用軟件註冊機機器碼破解方法及教程
  15. 15

    柳暗花明又一村,這是在AZMap.exe中調用的,這就好辦了,修改判斷啊,來個狠一點,這個timer的Tick事件一直會檢測SN是否合法,檢查加密狗是否插入、拔出、合法,直接全刪除!

    經常使用軟件註冊機機器碼破解方法及教程
  16. 16

    終於寫完了,效果圖!

    經常使用軟件註冊機機器碼破解方法及教程
    END

注意事項

  • 本教程不提供最終成品,本文已分析了詳細過程;
  • 在分析和調試時dll應使用脫殼後的,在檢查SN是否有效則使用原版dll;
  • 若是不會的,能夠與咱們聯繫,提供有償服務!
相關文章
相關標籤/搜索