180517 逆向 反控制流平坦化(符號執行指令碼)

2021-08-20 02:18:08 字數 585 閱讀 1464

正常流程如下

經混淆後的流程如下

破壞了**塊之間的關係後,整個程式的邏輯將很難辨認

符號執行的思路是遍歷所有路徑,將分發器等無用的**跳過,恢復**塊之間的聯絡

由於跳轉的**極有規律,因此在跨過分發器,找到**塊之間聯絡的基礎上修復控制流就難度不大了

符號執行反混淆的大體思路如上

可用指令碼

對於iscc的re3修復效果很顯著

不過這個修復由於並不完全,僅是調整了基本塊之間的順序,所以彙編看起來還是比較蛋疼的

得益於ida強大的hex-ray外掛程式,反編譯以後的**可讀性被恢復的很高

下一步有空嘗試一下hook分發器來打出log的分析方法,將其視為乙個vm來操作

爬蟲 js逆向 js反解析

案例 分析有道翻譯 1 找到請求的url 2 分析請求要攜帶的引數 請求頭,引數。先分析出最常見的要攜帶的請求頭引數 3 分析請求引數,哪些是改變的 4 在js中搜尋,salt或者sign返回的地方 5 找到 位置,分析js 按住ctrl f 在js中搜尋。圖中錯了,時間戳是13位 6 分析總結 e...

Django 中路由反 逆向 解析reverse

在定義路由的時候,可以為路由命名,方便查詢特定檢視的具體路徑資訊。1 在使用include函式定義路由時,可以使用namespace引數定義路由的命名空間,如 url r users include users.urls namespace users 在主路由中新增 命名空間 引數命名空間表示,凡...

python控制流教程 python控制流

1.if.elif.else 語法 if 判斷條件 語句.elif 判斷條件 語句.else 語句.elif語句可以有0個或多個 2.while和for迴圈 while 判斷條件 語句.for iterating var in sequence statements s 可以在while迴圈體中巢狀...