螞蟻金服12萬(wàn)破解懸賞--結(jié)束篇

截止9月24日懸賞正式結(jié)束了,我不出意外的沒(méi)有破解成功,到再整個(gè)過(guò)程中自己收獲滿滿。有破解成功的大神還請(qǐng)指導(dǎo)一二。

歷史篇章

1.首篇地址~思路預(yù)測(cè)
http://www.itdecent.cn/p/93b0b4e7e091
2.第一戰(zhàn)地址
http://www.itdecent.cn/p/96facd4e0dee

  1. 第二戰(zhàn)地址
    http://www.itdecent.cn/p/477af178d7d8

最后的進(jìn)展

  1. 通過(guò)多種方式了解到了VM就是傳說(shuō)中的虛擬機(jī)保護(hù)技術(shù),還扒到了阿里的VM作者深深膜拜了下 。
  2. 通過(guò)內(nèi)存dump找到了VM的指令區(qū)域,不過(guò)代碼插畫很多,沒(méi)研究明白。惡補(bǔ)了很多虛擬機(jī)保護(hù)技術(shù)的資料,但卻沒(méi)有和這套賽題的相關(guān)內(nèi)容對(duì)應(yīng)上,至此沒(méi)了思路,期間找到了很多的switch case但不能確定是不是VM的dispatcher,無(wú)法確認(rèn)vmcontext對(duì)應(yīng)那個(gè)。找到了一出vmcore interpreter看名字是核心解釋器,但沒(méi)有找到這個(gè)解釋器的調(diào)用入口。而且解釋器代碼很長(zhǎng),跳轉(zhuǎn)很多,也沒(méi)理清頭緒。

需要研究克服的幾個(gè)難點(diǎn)

  1. 突破反調(diào)試進(jìn)行動(dòng)態(tài)調(diào)試
    不能突破反調(diào)試的話,靜態(tài)分析效率比較低,且容易受到混淆代碼干擾,始終找不到真正的虛擬化代碼bytecode的位置,會(huì)不會(huì)core.bin就是呢?如果能突破他的反調(diào)試,也許能理清下思路。但這個(gè)代碼中函數(shù)是用的被動(dòng)注冊(cè),沒(méi)有jni_onload入口,后來(lái)找到了initarray,但按照網(wǎng)上的方法也沒(méi)有成功斷點(diǎn)。這塊是下一步的學(xué)習(xí)重點(diǎn)。
  2. 學(xué)習(xí)ida及其他分析工具
    單一工具比較受限,而且工具不熟練,很多常用功能不熟悉,這些都回影響到效率和思路,下一步要加強(qiáng)工具的使用,嘗試更多的工具,如od。
  3. 學(xué)習(xí)ELF文件格式規(guī)范
    深入研究ELF的格式規(guī)范定義,嘗試進(jìn)行文件修復(fù),內(nèi)存dump出來(lái)的指令代碼缺少section說(shuō)明等描述信息,直接拖放到ida中會(huì)不識(shí)別,需要手動(dòng)修復(fù)或修補(bǔ),才能更好的進(jìn)行分析。
  4. 深入學(xué)習(xí)虛擬機(jī)保護(hù)技術(shù)
    虛擬機(jī)保護(hù)技術(shù)簡(jiǎn)單來(lái)說(shuō)就是將核心的代碼(反匯編后的)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成自定義的字節(jié)碼(這個(gè)過(guò)程使用虛擬機(jī)編譯器進(jìn)行編譯生成),將該字節(jié)碼插入到文件的適當(dāng)位置,然后在核心代碼原位置插入虛擬機(jī)解釋器的指令入口地址。運(yùn)行期有虛擬機(jī)的解釋器對(duì)字節(jié)碼進(jìn)行解釋執(zhí)行。需要加深理解,并能和賽題中的進(jìn)行對(duì)應(yīng)理解。
圖片發(fā)自簡(jiǎn)書App
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容