五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[How2DEOBF] #1 樸素的XOR number混淆

2023-06-24 20:07 作者:Ezlips_yume  | 我要投稿


? ? ? ? 在對java程序進行保護的時候,我們常常使用混淆(obfuscate)。這使得逆向工作者無法直接對目標程序進行反編譯,或是難以理解目標程序的代碼邏輯。所謂反混淆(deobfuscate)也就是混淆的逆向操作,就是期望將混淆后的目標程序還原成未混淆前的狀態(tài),或者至少還原到可以理解的程度。

? ? ? ??一般而言,目標程序的混淆是由混淆器自動化進行的,這也就是說人工進行反混淆大抵是費時費力,自討苦吃,最好的辦法是,通過編寫相應的反混淆程序,實現(xiàn)反混淆。

? ? ? ??這篇專欄將以最簡單的XOR number混淆為教程。

? ? ? ? 預備知識:ASM-tree api,腦子

確定方針

? ? ? ? 下面展示混淆前后number的對比。

? ? ? ?

混淆前
混淆后

? ? ? ? 原先簡單的number變成了如此龐大的XOR們,如果要直接進行分析顯然有些困難??梢园l(fā)現(xiàn),這些XOR運算的結果實際上都是固定的,在java虛擬機對這些instructions進行執(zhí)行之后,最終還是能夠得到混淆前的兩個小number。

? ? ? ? 那么,我們不妨模擬虛擬機的執(zhí)行過程,遍歷方法中的instructions,如果發(fā)現(xiàn)IXOR,就再查看它的前兩個instruction是否是一個固定的integer,若是,則將結果計算出來,把原先的IXOR運算覆蓋,我們就完成了反混淆。

實現(xiàn)

? ? ? ? 這里使用narumii的deobfuscator進行transformer編寫(https://github.com/narumii/Deobfuscator/)雖然這個反混淆器已經(jīng)有了反混淆number的功能,但為了原理的學習,我們將自行編寫。

? ? ? ? 創(chuàng)建一個類,繼承Transformer,隨后實現(xiàn)transform方法。

? ? ? ? 我們遍歷反混淆器加載好的目標程序的class,對每個class的每個method,尋找是否存在IXOR,然后再按照上述的操作實現(xiàn)就行了。

代碼示例

? ? ? ? 加載示例程序后運行,進行transform,我們便得到反混淆后的程序。

? ? ? ? 如此,我們成功實現(xiàn)了一個簡單的transformer。

后記

? ? ? ? 這篇專欄中實現(xiàn)的transformer幾乎可以說是最簡單的一個了,功能也比較單一,事實上的反混淆工作也遠比這困難。不過千里之行始于足下,這算是一個良好的開始。

? ? ? ? 下載示例程序:https://wwcx.lanzoum.com/b032je36d(ethb)


[How2DEOBF] #1 樸素的XOR number混淆的評論 (共 條)

分享到微博請遵守國家法律
桦甸市| 阿瓦提县| 静海县| 万年县| 九江市| 西贡区| 麻江县| 西盟| 镇康县| 云浮市| 泰州市| 黑龙江省| 筠连县| 泾阳县| 盐源县| 凤山县| 民权县| 和林格尔县| 黎城县| 陇南市| 南澳县| 满洲里市| 景泰县| 盐源县| 沁源县| 临海市| 宜兰县| 临汾市| 射洪县| 额济纳旗| 诸城市| 江华| 昌邑市| 江陵县| 棋牌| 贵溪市| 东平县| 惠来县| 平远县| 新竹县| 大兴区|