對于BASE64編碼的逆向分析
在反編譯文件中找到主函數,點擊后按F5
得到反編譯出的主函數部分
其中1至7行是程序編譯過程中系統預置的,可以不用理解。
假設第一次剪刀這個程序,對主函數逐段從第九行開始就是程序的主函數部分逐段進行分析。
10行: 輸出一段文字
雙擊這段文字,就是如上的匯編,可以不用理解,大意就是說輸入了一行字符串
11行: 讀入了一個數字,這個數字在之后的第13和30行用到了。大致的用處就是分開判斷兩部分,分別進行兩個程序當輸入的v6為1時進行第15到28行的程序,當v6為2時進行30到46行的程序
15到28行: 讀到了字符串,這一串就是要編碼的字符串,首先v8表示字符串的長度,每三個字符處理一次,具體的處理函數時get_number函數在進行,之后判斷函數的長度是否時3的倍數,這里就是對需要編碼的字符串進行特判=的存在,分別在之后的兩個函數中進行處理,之后輸出答案
30到46行: 和之前的很類似,就是將BASE64編碼的步驟反著進行了下,就是解碼的步驟
舉例看一下get_number函數
其中很多部分是不需要理解的大致的意思就是說在取得二進制,然后按照BASE64編碼的形式進行操作
一些即將進行的工作:
BASE64算法中可以控制的地方為編碼時對照表,所以大多數的題目中BASE64的魔改都可以通過修改對照表進行
通常魔改BASE64有兩周情況
直接定義新的編碼對照表
動態生成新的編碼對照表,這里就是下一步即將學習的地方
-
編碼
+關注
關注
6文章
967瀏覽量
55509 -
函數
+關注
關注
3文章
4371瀏覽量
64229 -
Base64
+關注
關注
0文章
25瀏覽量
8998 -
程序編譯
+關注
關注
0文章
9瀏覽量
5533
發布評論請先 登錄
Base64的編解碼方法
base64解碼編碼詳解

base64編碼有什么用?(base64介紹及應用)

java實現圖片與base64編碼的轉換
什么是Base64,如何編解碼?
base64編碼和解碼的使用方法
如何使用base64處理圖像數據
base64字符串轉換為二進制文件
base64的安全性及其應用場景
base64與URL編碼的區別和聯系
如何優化base64編碼的性能
base64在前端開發中的應用
基于RK3576的BASE64編解碼

評論