對于BASE64編碼的逆向分析
在反編譯文件中找到主函數(shù),點(diǎn)擊后按F5
得到反編譯出的主函數(shù)部分
其中1至7行是程序編譯過程中系統(tǒng)預(yù)置的,可以不用理解。
假設(shè)第一次剪刀這個(gè)程序,對主函數(shù)逐段從第九行開始就是程序的主函數(shù)部分逐段進(jìn)行分析。
10行: 輸出一段文字
雙擊這段文字,就是如上的匯編,可以不用理解,大意就是說輸入了一行字符串
11行: 讀入了一個(gè)數(shù)字,這個(gè)數(shù)字在之后的第13和30行用到了。大致的用處就是分開判斷兩部分,分別進(jìn)行兩個(gè)程序當(dāng)輸入的v6為1時(shí)進(jìn)行第15到28行的程序,當(dāng)v6為2時(shí)進(jìn)行30到46行的程序
15到28行: 讀到了字符串,這一串就是要編碼的字符串,首先v8表示字符串的長度,每三個(gè)字符處理一次,具體的處理函數(shù)時(shí)get_number函數(shù)在進(jìn)行,之后判斷函數(shù)的長度是否時(shí)3的倍數(shù),這里就是對需要編碼的字符串進(jìn)行特判=的存在,分別在之后的兩個(gè)函數(shù)中進(jìn)行處理,之后輸出答案
30到46行: 和之前的很類似,就是將BASE64編碼的步驟反著進(jìn)行了下,就是解碼的步驟
舉例看一下get_number函數(shù)
其中很多部分是不需要理解的大致的意思就是說在取得二進(jìn)制,然后按照BASE64編碼的形式進(jìn)行操作
一些即將進(jìn)行的工作:
BASE64算法中可以控制的地方為編碼時(shí)對照表,所以大多數(shù)的題目中BASE64的魔改都可以通過修改對照表進(jìn)行
通常魔改BASE64有兩周情況
直接定義新的編碼對照表
動(dòng)態(tài)生成新的編碼對照表,這里就是下一步即將學(xué)習(xí)的地方
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
一、base64加密格式:base64從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù),按Ctrl+D結(jié)束輸入。將輸入的內(nèi)容編碼為base64字符串輸出。
發(fā)表于 07-15 08:02
Base64是什么?Base64編碼轉(zhuǎn)換有哪些具體步驟呢?Base64加密與解密該怎樣去實(shí)現(xiàn)呢?
發(fā)表于 01-20 06:37
Base64是一種很常用的編碼方式,利用它可以將任何二進(jìn)制的字符編碼到可打印的64個(gè)字符之中, 這樣,不管是圖片,中文文本等都可以編碼成只有
發(fā)表于 10-18 11:11
?10次下載
Base64編碼是從二進(jìn)制到字符的過程,可用于在HTTP環(huán)境下傳遞較長的標(biāo)識信息。例如,在Java Persistence系統(tǒng)Hibernate中,就采用了Base64來將一個(gè)較長的唯一標(biāo)識符(一般
發(fā)表于 11-14 09:43
?1.5w次閱讀
由于某些系統(tǒng)中只能使用ASCII字符。Base64就是用來將非ASCII字符的數(shù)據(jù)轉(zhuǎn)換成ASCII字符的一種方法。base64特別適合在http,mime協(xié)議下快速傳輸數(shù)據(jù)。
發(fā)表于 11-14 10:35
?2.8w次閱讀
這篇文章主要介紹了Java實(shí)現(xiàn)圖片與base64編碼之間的轉(zhuǎn)換實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下。
發(fā)表于 11-14 10:59
?1883次閱讀
Base64編碼的原理是將輸入數(shù)據(jù)分割成固定長度的塊(通常是3個(gè)字節(jié)),然后將每個(gè)塊轉(zhuǎn)換為4個(gè)Base64字符。這四個(gè)字符由64個(gè)特定的ASCII字符組成,包括大寫字母A-Z、小寫字母
發(fā)表于 05-03 17:36
?840次閱讀
Base64編碼是一種廣泛使用的編碼方案,用于將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為純文本格式。這種編碼方式特別適用于在不支持二進(jìn)制數(shù)據(jù)的系統(tǒng)之間傳輸數(shù)據(jù),例如電子郵件、網(wǎng)頁等。 1.
發(fā)表于 11-10 10:48
?1998次閱讀
Base64是一種編碼方法,可以將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為ASCII字符集的文本格式。這種編碼方式常用于在不支持二進(jìn)制數(shù)據(jù)的系統(tǒng)之間傳輸圖像數(shù)據(jù),例如在電子郵件、網(wǎng)頁或配置文件中。 1. 理解Base
發(fā)表于 11-10 10:51
?876次閱讀
Base64是一種編碼方法,用于將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為ASCII字符串。這種編碼通常用于在不支持二進(jìn)制數(shù)據(jù)的系統(tǒng)中傳輸數(shù)據(jù),例如電子郵件或網(wǎng)頁。將Base64字符串轉(zhuǎn)換為二進(jìn)制文件的過程相
發(fā)表于 11-10 10:55
?1632次閱讀
編碼原理 Base64編碼將每3個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為4個(gè)ASCII字符。這種編碼方式可以確保數(shù)據(jù)在不同系統(tǒng)和平臺之間傳輸時(shí)的兼容性。Base64
發(fā)表于 11-10 10:59
?827次閱讀
在數(shù)字時(shí)代,數(shù)據(jù)的傳輸和存儲變得尤為重要。為了確保數(shù)據(jù)在不同系統(tǒng)和平臺之間能夠正確、安全地傳輸,我們需要對數(shù)據(jù)進(jìn)行編碼。Base64和URL編碼是兩種廣泛使用的編碼技術(shù),它們各自有不同
發(fā)表于 11-10 11:11
?750次閱讀
Base64編碼是一種廣泛使用的編碼方法,用于將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為ASCII字符串。它在許多場景中非常有用,例如在電子郵件、網(wǎng)頁和存儲系統(tǒng)中傳輸二進(jìn)制數(shù)據(jù)。然而,Base64
發(fā)表于 11-10 14:17
?1081次閱讀
Base64是一種編碼方法,用于將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為ASCII字符串。這種編碼方式在前端開發(fā)中有著廣泛的應(yīng)用,尤其是在數(shù)據(jù)傳輸和存儲方面。 1. Base64
發(fā)表于 11-10 14:24
?668次閱讀
優(yōu)勢 兼容性和跨平臺性 : Base64編碼的字符串是純文本格式,這意味著它們可以在任何支持ASCII文本的環(huán)境中使用,包括不同的操作系統(tǒng)和編程語言。這種跨平臺性使得Base64編碼的
發(fā)表于 11-10 14:25
?1075次閱讀
評論