0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

對BASE64編碼的逆向分析

CHANBAEK ? 來源:Lpy Now的小窩 ? 作者:Lpy_Now ? 2023-09-20 17:24 ? 次閱讀

對于BASE64編碼的逆向分析

圖片

圖片

在反編譯文件中找到主函數(shù),點擊后按F5

得到反編譯出的主函數(shù)部分

圖片

圖片

圖片

圖片

圖片

其中1至7行是程序編譯過程中系統(tǒng)預(yù)置的,可以不用理解。

假設(shè)第一次剪刀這個程序,對主函數(shù)逐段從第九行開始就是程序的主函數(shù)部分逐段進(jìn)行分析。

10行: 輸出一段文字

圖片

圖片

雙擊這段文字,就是如上的匯編,可以不用理解,大意就是說輸入了一行字符串

11行: 讀入了一個數(shù)字,這個數(shù)字在之后的第13和30行用到了。大致的用處就是分開判斷兩部分,分別進(jìn)行兩個程序當(dāng)輸入的v6為1時進(jìn)行第15到28行的程序,當(dāng)v6為2時進(jìn)行30到46行的程序

15到28行: 讀到了字符串,這一串就是要編碼的字符串,首先v8表示字符串的長度,每三個字符處理一次,具體的處理函數(shù)時get_number函數(shù)在進(jìn)行,之后判斷函數(shù)的長度是否時3的倍數(shù),這里就是對需要編碼的字符串進(jìn)行特判=的存在,分別在之后的兩個函數(shù)中進(jìn)行處理,之后輸出答案

30到46行: 和之前的很類似,就是將BASE64編碼的步驟反著進(jìn)行了下,就是解碼的步驟

舉例看一下get_number函數(shù)

圖片

圖片

圖片

圖片

其中很多部分是不需要理解的大致的意思就是說在取得二進(jìn)制,然后按照BASE64編碼的形式進(jìn)行操作

一些即將進(jìn)行的工作:

BASE64算法中可以控制的地方為編碼時對照表,所以大多數(shù)的題目中BASE64的魔改都可以通過修改對照表進(jìn)行

通常魔改BASE64有兩周情況

直接定義新的編碼對照表

動態(tài)生成新的編碼對照表,這里就是下一步即將學(xué)習(xí)的地方

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    915

    瀏覽量

    54651
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4237

    瀏覽量

    61969
  • Base64
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    8790
  • 程序編譯
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    5447
收藏 人收藏

    評論

    相關(guān)推薦

    【安全算法之base64base64加解密的C語言源碼實現(xiàn)

    ? 最近,有項目中需要用到base64的加解密,所以用C語言實現(xiàn)了一遍,測試效果還不錯,代碼量和RAM消耗都比較低,可以提供給大家參考下。
    的頭像 發(fā)表于 09-18 09:31 ?4185次閱讀
    【安全算法之<b class='flag-5'>base64</b>】<b class='flag-5'>base64</b>加解密的C語言源碼實現(xiàn)

    labview把圖片轉(zhuǎn)成base64

    各位大佬們,請教一下如何在labview中把圖片轉(zhuǎn)成base64編碼,然后傳給Python,或者是然后用labview和Python之間傳遞圖片,求大神指教該怎么寫
    發(fā)表于 05-08 01:04

    base64的加密和解密

    一、base64加密格式:base64從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù),按Ctrl+D結(jié)束輸入。將輸入的內(nèi)容編碼base64字符串輸出。
    發(fā)表于 07-15 08:02

    如何將一個base64編碼的圖片字符串轉(zhuǎn)換回圖片呢

    如何將一個base64編碼的圖片字符串轉(zhuǎn)換回圖片呢?求大神解答
    發(fā)表于 12-20 06:40

    有關(guān)Base64編碼的基本知識都總結(jié)在這里了

    Base64是什么?Base64編碼轉(zhuǎn)換有哪些具體步驟呢?Base64加密與解密該怎樣去實現(xiàn)呢?
    發(fā)表于 01-20 06:37

    labview base64轉(zhuǎn)16進(jìn)制

    需要用到base64編碼方式的可以下載一下,程序還可以自己優(yōu)化
    發(fā)表于 06-14 17:42

    基于XML和Base64方法實現(xiàn)通用通信平臺

    信息通過Base64 編碼變成ASCII 碼,利用XML 編碼對ASCII 碼形式的結(jié)果進(jìn)行組織,來實現(xiàn)各個異構(gòu)系統(tǒng)的信息快速和低成本地通信。
    發(fā)表于 12-18 17:28 ?22次下載

    Base64的編解碼方法

    Base64是一種很常用的編碼方式,利用它可以將任何二進(jìn)制的字符編碼到可打印的64個字符之中, 這樣,不管是圖片,中文文本等都可以編碼成只有
    發(fā)表于 10-18 11:11 ?10次下載

    base64解碼編碼詳解

    Base64編碼是從二進(jìn)制到字符的過程,可用于在HTTP環(huán)境下傳遞較長的標(biāo)識信息。例如,在Java Persistence系統(tǒng)Hibernate中,就采用了Base64來將一個較長的唯一標(biāo)識符(一般
    發(fā)表于 11-14 09:43 ?1.5w次閱讀
    <b class='flag-5'>base64</b>解碼<b class='flag-5'>編碼</b>詳解

    base64加密解密詳解(及參考代碼)

    Base64是一種很常見的編碼規(guī)范,其作用是將二進(jìn)制序列轉(zhuǎn)換為人類可讀的ASCII字符序列,常用在需用通過文本協(xié)議(比如HTTP和SMTP)來傳輸二進(jìn)制數(shù)據(jù)的情況下。
    發(fā)表于 11-14 10:21 ?1.6w次閱讀
    <b class='flag-5'>base64</b>加密解密詳解(及參考代碼)

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

    由于某些系統(tǒng)中只能使用ASCII字符。Base64就是用來將非ASCII字符的數(shù)據(jù)轉(zhuǎn)換成ASCII字符的一種方法。base64特別適合在http,mime協(xié)議下快速傳輸數(shù)據(jù)。
    發(fā)表于 11-14 10:35 ?2.8w次閱讀
    <b class='flag-5'>base64</b><b class='flag-5'>編碼</b>有什么用?(<b class='flag-5'>base64</b>介紹及應(yīng)用)

    java實現(xiàn)圖片與base64編碼的轉(zhuǎn)換

    這篇文章主要介紹了Java實現(xiàn)圖片與base64編碼之間的轉(zhuǎn)換實例代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下。
    發(fā)表于 11-14 10:59 ?1831次閱讀

    Base64編解碼 可設(shè)置key

    codes為Base64編碼key值,包括64個字符,由‘A’~‘Z’,‘a(chǎn)’~‘z’,‘0’~‘9’,‘+’,‘/’組成字符串,且每個字符只能出現(xiàn)一次,但順序可以自由調(diào)整。
    發(fā)表于 11-14 22:29 ?3234次閱讀

    什么是base64

    在我們嵌入式開發(fā)中,我們常常都會用到一些通用的工具庫,往往都會有個base64編解碼模塊。
    的頭像 發(fā)表于 02-09 16:34 ?3474次閱讀
    什么是<b class='flag-5'>base64</b>?

    什么是Base64,如何編解碼?

    Base64編碼的原理是將輸入數(shù)據(jù)分割成固定長度的塊(通常是3個字節(jié)),然后將每個塊轉(zhuǎn)換為4個Base64字符。這四個字符由64個特定的ASCII字符組成,包括大寫字母A-Z、小寫字母
    發(fā)表于 05-03 17:36 ?375次閱讀