010Editor(v8.0.1最新版)逆向_算法分析及註冊機編寫(附可用key和源碼)

010Editor(v8.0.1)逆向分析

0x0軟件簡介

010Editor是一款採用QT界面庫編寫的,兼容多操作系統的十六進制編輯軟件.功能強大,簡單易用.

0x1逆向環境及工具

系統環境:Window 7 32bit

使用工具:OllyDbg,IDA

本次測試版本爲官方最新版:

Name:010 Editor for Windows 32-Bit
Version: 8.0.1, Windows 10/8/7/Vista/XP/2000

File Size: 14.2 MB


0x2主要算法簡述

key的算法可能是有多種,其中第一種有判斷中間字符爲0x9C的爲3個"-"分割,第二種判斷0xAC的爲4個"-"分割
這裏只簡要說一下第一種
假設key由key0~key7組成,每個代表兩個字符
那麼key3==0x9C
key4==(byte)Name加密Result[0]
key5==(byte)Name加密Result[1]
key6==(byte)Name加密Result[2]
key7==(byte)Name加密Result[3]
(((key0^key6) ^ 0x18) + 0x3D) ^ 0xA7 != 0;(0x18B)
(((((key2^key5)+(key1^key7*0x100))^0x7892)+0x4D30)^0x3421)/0xB == Quotient(整除0xB的商,必須小於0x3E8)
附一組可用key
Name:Hades

Password:6DFE-9C9C-7271-9A65

0x3主要邏輯逆向

使用OD和IDA動態調試和靜態分析結合.分析如下

關鍵的兩個算法函數(IDA中可用字符串引用定位,OD中可下斷password錯誤的創建窗口一點點的找到)


在OD中下斷在兩個函數處

(通過計算偏移可以得到,也可以使用棧回溯辦法定位到)


其中sub_409C9B函數中調用了sub_40A826函數.其中判斷sub_40A826函數返回值爲2D才爲註冊成功跳轉

sub_409C9B函數中調用sub_40A826函數並對比其返回值是0x2D還是其他錯誤值


sub_40A826函數中的轉換與算法

Name轉換爲Byte數組


輸入的Name和Password(看到後邊有判斷9C的地方,特意把中間key改成了9C)


判斷序列號某一組是不是9C


部分key加密的部分


計算序列號第1個與第7個的結果,函數


判斷整除0xB的函數


加密Name,然後對比其中的幾位序列號


加密Name的CALL 010Editor.01372E50函數的過程.


OD中動態調試其Name加密過程,得知0x3DD4148處是一個加密key用到的加密祕鑰數組


整個加密key數組如下:


sub_40A826函數賦值並返回0x2D


sub_409C9B函數返回0xDB後表示成功:


另:繼續使用的跳轉:

這兩處關鍵跳轉,更改這兩處跳轉可以繼續使用軟件



完成註冊機的編寫

註冊機程序源碼:


測試註冊效果


PS:010Editor也有簡單的網絡驗證的,key可能過段時間不能用了,就是被檢測到了,過掉網絡驗證也很簡單,不在具體寫了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章