逆向分析010 editor
0x01 什么是010 editor
010 Editor 是一款專業(yè)的文本編輯器和十六進(jìn)制編輯器,旨在快速輕松地編輯計算機(jī)上任何文件的內(nèi)容。該軟件可以編輯文本文件,包括 Unicode 文件、批處理文件、C/C++、XML 等,但 010 Editor 擅長的地方在于編輯二進(jìn)制文件。二進(jìn)制文件是計算機(jī)可讀但人類不可讀的文件(如果在文本編輯器中打開,二進(jìn)制文件將顯示為亂碼)。十六進(jìn)制編輯器是一個程序,允許您查看和編輯二進(jìn)制文件的各個字節(jié),包括 010 編輯器在內(nèi)的高級十六進(jìn)制編輯器還允許您編輯硬盤驅(qū)動器、軟盤驅(qū)動器、內(nèi)存密鑰、閃存驅(qū)動器、CD-ROM、 流程等。
0x02 OD暴力破解
在軟件逆向破解的過程中,OD暴力破解是比較有效的方式,通過修改jcc指令或者nop掉一些跳轉(zhuǎn)讓程序按照正確的流程走下去。
主要流程大概是:1、尋找關(guān)鍵函數(shù);2、分析整體流程;3、修改程序驗證邏輯。
本次測試的010 editor版本為v13.0
首先查殼
既然無殼那就直接上OD
首先我們要找到注冊的函數(shù),首次下載010 editor可以試用30天,點擊注冊按鈕
程序會讓輸入用戶名和注冊碼,隨便輸入試試
程序會提示無效的用戶名和密碼,可以根據(jù)程序提示的內(nèi)容來找到對應(yīng)的函數(shù)
通過OD的中文搜索引擎-智能搜索功能查找對應(yīng)字符串
找到對應(yīng)的字符串,跟進(jìn)函數(shù)
跟進(jìn)后可以看到,程序執(zhí)行到輸出無效的用戶名和密碼處,是通過一個跳轉(zhuǎn)到該位置的,繼續(xù)往上跟看看是那個地方跳轉(zhuǎn)
發(fā)現(xiàn)是從0x0144B62A位置處跳轉(zhuǎn)過來的,這樣的話是否可以直接修改jcc執(zhí)行來讓程序不跳轉(zhuǎn)呢
改成je試下,改成je后發(fā)現(xiàn)不對,程序會執(zhí)行到0x0144B6C6的位置,提示Password accepted but the trial period is already over,那么就繼續(xù)往上跟蹤
在跳轉(zhuǎn)前邊有三個cmp指令,其中0x0144B60D是從0x0144B4E2處跳轉(zhuǎn)來的
在0x0144B4E2處下斷點調(diào)試一下
在這里發(fā)現(xiàn)0x0144B51D的位置會輸出Password accepted,所以這里把jnz改成je或者nop掉就可以了
保存出來看一下
可以看到輸入任意的內(nèi)容已經(jīng)激活成功,但是這樣的話每次打開都需要點擊一下check license,那么繼續(xù)看看能不能讓程序直接打開。
首先來梳理一下正常的邏輯程序是怎么運行的:首先在0x0030B3FC的位置處EAX和0xE7進(jìn)行比較,此時EAX的值為0xE7,所以je跳轉(zhuǎn)成立,程序運行到0x0030B4DC處,cmp ebx,0xDB,這時候EBX的值為0x177,jnz不等于則跳轉(zhuǎn),所以此時跳轉(zhuǎn)成立,跳轉(zhuǎn)到0x0030B60D的位置處,這個時候程序已經(jīng)跳過了驗證成功的地方,繼續(xù)執(zhí)行,有三個cmp語句后跟jcc跳轉(zhuǎn)指令,cmp ebx,0xED和cmp ebx,0x20C,這時EBX的值還是0x177,所以兩個je都沒有跳轉(zhuǎn),運行到第三個cmp指令cmp eax,0x93的位置,EAX此時的值為0xE7,這里是jnz指令所以跳轉(zhuǎn)成功,跳轉(zhuǎn)到0x0030B6E8的位置,輸出無效的用戶名密碼,驗證函數(shù)到此結(jié)束。
通過上面的分析當(dāng)EBX等于0xDB的時候程序才會走到驗證成功的位置,也就是說想要程序不每次運行都彈驗證框,需要直接將0xDB賦給EBX
返回到0x0030B3FC的位置繼續(xù)往上跟蹤可以看到EBX的值就是EAX的值,所以需要將0xDB賦給EAX,那么需要繼續(xù)跟蹤看看EAX的值是誰賦給的,在0x0030B3E9的位置處下斷點,F(xiàn)8執(zhí)行,發(fā)現(xiàn)在執(zhí)行call 0x0013808A的時候EAX的值發(fā)生了變化,所以直接跟進(jìn)call里面
在開頭直接給EAX賦值,mov eax,0x2d retn 0x8
最后把程序dump出來,發(fā)現(xiàn)程序直接打開就能使用了也不用每次都點擊驗證了。
0x03 總結(jié)
其實010 editor對于新手逆向來說還是挺友好的,沒有加殼,然后整個函數(shù)的邏輯也算比較清晰,更改起來也很簡單,以后有時間的還是要研究一下注冊驗證的算法,然后寫個注冊機(jī)出來。
審核編輯:湯梓紅
-
編輯器
+關(guān)注
關(guān)注
1文章
808瀏覽量
31407 -
十六進(jìn)制
+關(guān)注
關(guān)注
2文章
32瀏覽量
37989 -
Editor
+關(guān)注
關(guān)注
0文章
20瀏覽量
14198
原文標(biāo)題:逆向分析010 editor
文章出處:【微信號:Tide安全團(tuán)隊,微信公眾號:Tide安全團(tuán)隊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
[資料分享]+《Android軟件安全與逆向分析》
芯片逆向工程的流程?
芯片解密——逆向分析(上)
Parameters Editor,USB-CDROM量產(chǎn)工

逆向工程及其在CAD軟件中的實現(xiàn)
allegro pcb editor規(guī)則設(shè)置類別優(yōu)先順序

PCB逆向原理圖設(shè)計
基于frida的Objection對APP逆向過程的作用
External Flash Definition Editor 用戶手冊

External Flash Definition Editor 用戶手冊

評論