最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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混淆的評論 (共 條)

分享到微博請遵守國家法律
石首市| 新晃| 望谟县| 潮州市| 平邑县| 肃北| 花莲市| 喀喇沁旗| 富蕴县| 信丰县| 炉霍县| 普兰店市| 胶州市| 泸州市| 西宁市| 青海省| 城步| 辽阳市| 龙泉市| 五莲县| 长宁县| 百色市| 宜宾县| 陆川县| 阜宁县| 通榆县| 明水县| 绥棱县| 文登市| 连平县| 辽阳县| 彭泽县| 张家港市| 满城县| 泸州市| 贵德县| 金沙县| 林西县| 青川县| 万全县| 额敏县|