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

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

分享到微博請遵守國家法律
运城市| 河北区| 无为县| 保山市| 杭锦旗| 壤塘县| 安多县| 容城县| 商洛市| 泰兴市| 汾西县| 碌曲县| 罗田县| 寿宁县| 博罗县| 惠东县| 宽城| 磐安县| 庐江县| 武安市| 英山县| 华亭县| 晋中市| 家居| 漠河县| 新宁县| 泾阳县| 都安| 枣阳市| 武乡县| 东明县| 天柱县| 黄骅市| 无为县| 万州区| 福海县| 历史| 东乌珠穆沁旗| 西峡县| 全南县| 屯昌县|