<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    【逆向分析】抖音小程序ttpkg.js文件解包記錄

    VSole2022-09-08 08:24:11

    一、通過Fiddler抓包獲取到小程序的配置信息文件,其中包含ttpkg.js文件的路徑

    抓包相信大家肯定已經會了吧,不會的可以參考吾愛看雪論壇的相關文章

    二、瀏覽器打開對應的ttpkg.js文件,并保存到本地

    這里怎么保存的不用我多說吧,重點在后面的分析過程

    三、通過16進制分析工具進行數據分析

    我這里使用的是WinHex,其他的工具都大同小異,自行選擇

    3.1 ttpkg的文件結構

    這里通過搜索引擎查找相關資料,居然只找到一篇相關的,大概結構可參考這篇文章:https://blog.csdn.net/weixin_29002961/article/details/117869108
    這里貼出文件的大概結構信息(實際肯定有差距)

    3.2 通過WinHex分析數據

    打開文件,第一眼就可以看到大量的明文數據,前四個字節是固定標識,后面很多文件路徑之類的東西,再往下翻會看到文件內容之類的東西
    文件頭
    部分文件內容
     
    我這里復制了一份導入到可以格式化代碼的編輯器里面,通過代碼格式化可以看出大概的文件結構
    之所以要復制一份是防止破壞源文件的結構(你猜我是怎么知道的[手動狗頭])
    我這里使用的phpstorm導入的文件,通過代碼格式化后可以看到31行有一個json的開始,并且沒有亂碼之類的,結束的地方在1210行,后面再跟的就是一個js代碼的開頭了,可以猜測在文件的某個地方存有文件開始位置和結束位置或者文件長度的數據
    打開WinHex在文件頂部,查看兩個明文之間的間距是多少,這種一般都會有一定的規律,這里看到間距的長度為CC是16進制的,所以在十進制中代表的12,也就是每個明文路徑之間有十二個字節的間距,這里經過多次對比后確定長度就是C

    3.3 對比每組數據的差異與共同點

    選中數據后點鼠標右鍵選擇編輯-復制選塊-十六進制數值
    >
    然后粘貼到編輯器里面,并把每個端后面的文件名復制到后面,按照兩個字符為一組用空格進行分割,下面是我分析出來的數據
    藍色框里代表不同的數據,紅色框里代表相同的數據,通過分析可得出第三個框里的數據為文件名稱的長度,其余的都是結構體剩余的字節,比如int類型占用四個字節,'app-service.js'的長度為14,所以對應的16進制為E'app.js'的長度為6,在16進制里也就是'6',這里定位了文件名稱長度的位置,就是每段空白字符的第9-12個字節,因為使用的是大端存儲的,所以是逆序的,大端存儲和小端存儲可以百度一下。

    文件頂部數據比較特殊,通過之前的分析可分析出以下數據:版本號4個空字節占用文件個數第一個文件名稱長度,這里我們發現文件頭里面并沒有我們需要的文件起始位置和結束位置的信息

    3.4 定位文件起始位置和結束位置

    因為第一個文件為json,所以我們就會想起最開始的那個json頭,先找一下偏移位置是多少,再去數據里找相應的16進制數據。這里就定位了文件名稱后面第一個4個字節就是我們要找的文件內容開始位置,因為使用的大端存儲,所以是逆序的,源數據為:6F 25 00 00,通過逆序后就是00 00 25 6F,跟我們手動找到的文件頭偏移地址一致

    數據長度也通過同樣的方式分析,通過右鍵把json開始的{設置為選塊起始位置,再把結尾的地方選擇為選塊結束位置,即可

    OK,至此所需要的數據就找完了,有了這些數據就可以把文件名稱對應的文件內容寫出來了

    最終解包效果圖如下:

    文件頭
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    惡意軟件為了不讓我們很容易反編譯一個apk,會對androidmanifest文件進行魔改加固,本文探索androidmanifest加固的常見手法以及對抗方法。這里提供一個惡意樣本的androidmanifest.xml文件,我們學完之后可以動手實踐。
    文件上傳前端JS 防護,通過抓包修改,或插件js禁用來繞過。后端黑名單上傳陌生后綴 .php3 php5上傳配置文件 .htaccess通過 雙寫 ,大小寫,基于windows 特性
    此文章可以說是對于想研究“文件上傳漏洞”的新人是必看的內容,如果你不看此筆記,文件上傳漏洞實戰你能搞明白嗎?內部:掃描工具探針的上傳地址:后臺的上傳地址 3、學文件上傳漏洞篇要注意哪些關鍵地方?
    通過比對發現兩個文件中都存在大量的16進制“4D”數據,在整個文件數據中占比都高于58%。在正常情況下該文件中占比最多的數據是“00”,所以推測工程文件無論是否設置文件保護密碼,都要使用16進制“4D”進行異或加密。下面進行比對分析無密碼分析有密碼分析所以使用“4D”分別對這兩個文件進行異或運算,結果在兩個文件中都發現了一些可讀字符,說明思路是對的,當異或運算之后的文件就是明文文件
    通過找源碼代碼審計后getshell。測試在某次測試過程中發現,通過泄漏的md5進入后臺,在后臺配置中有處“上傳logo”的功能。會提示“上傳失敗”。只有正常圖片+圖片后綴 會返回圖片路徑。第一行 導入命名空間“phpWeChat” 內的 Upload 類,下面是引用包含一些文件。再往下,$action是用于下面 switch函數內做索引匹配而調用不同功能的。$action的值是通過 GET方式獲取 “action”參數的值。
    A:在網絡傳輸不穩定的情況下,導致文件傳輸不完整,可能會導致誤報,除了這個之外很少有人會在上傳過程中改變原有的文件類型. Q:能否繞過檢測?
    最近由于筆者所在的研發集團產品需要,需要支持高性能的大文件(大都數是4GB以上)的http上傳,并且要求支持http斷點續傳。筆者在以前的博客如何實現支持大文件的高性能HTTP文件上傳服務器已經介紹了實現大文件上傳的一些基本概念,其實非常簡單,這里在簡要歸納一下,方便記憶:
    文件頂部數據比較特殊,通過之前的分析可分析出以下數據:版本號、4個空字節占用、文件個數、第一個文件名稱長度,這里我們發現文件里面并沒有我們需要的文件起始位置和結束位置的信息3.4 定位文件起始位置和結束位置因為第一個文件為json,所以我們就會想起最開始的那個json,先找一下偏移位置是多少,再去數據里找相應的16進制數據。
    依賴于特定硬件環境的固件無法完整模擬,需要hook掉其中依賴于硬件的函數。LD_PRELOAD的劫持對于特定函數的劫持技術分為動態注入劫持和靜態注入劫持兩種。網上針對LD_PRELOAD的劫持也有大量的描述
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类