抖音爬蟲教程-逆向分析-使用關鍵字進行功能破解,抖音直播間資料抓取

語言: CN / TW / HK

抖音爬蟲教程-逆向分析-使用關鍵字進行功能破解,抖音直播間資料抓取

備註

只是學習交流討論,切勿其它用途。

前言

此次分享以實際案例進行講解,涉及:

  • 暴力破解
  • 真實註冊碼尋找
  • 註冊機編寫
  • 去除軟體暗樁等知識點

短視訊直播資料採集介面SDK請點選檢視介面文件

工具準備

x64dbg

Windows 的開源二進位制偵錯程式,用於惡意軟體分析和對沒有原始碼的可執行檔案進行反向工程。

Winhex

WinHex 本質上是一個通用十六進位制編輯器。專為最低級別的資料處理而設計,作為計算機系統犯罪學(取證)調查的多功能工具,用於資料恢復和 IT 安全 - 在日常使用和緊急情況中。

keymaker2

KeyMake是一款功能強大的註冊機編寫器,該軟體採用彙編模板為核心,可方便使用者省去複雜的指令演算法,從而快速製作出所需的註冊機!

OllyDbg

Ollydbg是一款專業的反彙編除錯工具,主要用於一些應用程式的編譯操作,軟體最擅長分析函式過程、迴圈語句、API呼叫、函式中引數的數目和import表等等

暴力破解

此節講解如何通過修改彙編程式碼來跳過程式驗證部分(俗稱打補丁)的形式來過掉程式的最終校驗

  • 所用工具:<br>x64dbg<br>外加中文搜尋外掛(簡體中文關鍵字:需搜尋中文字串)
  • 將要分析的程式用x64dbg載入<br>
  • 點選x64dbg執行按鈕,執行程式,讓其執行,使其可載入更多的資訊用於分析,之後使用字串搜尋工具進行搜尋<br>
  • 根據關鍵字查詢有用資訊<br><br>發現一些註冊判斷跳轉,並在跳轉處下斷點,使其可以中斷進行分析
  • 註冊資訊沒有填寫齊全判斷<br>

<br>image.png

  • 想不管輸入什麼都不提示“註冊資訊沒有填寫齊全”這個提示就要使00510465處的跳轉不成立,<br>因原je為等於轉移,但出現不等於時跳轉不執行,故需二進位制編輯廢除此跳轉, 0051047F處的跳轉成立,因原jne為不等於轉移,但出現不等於時跳轉不執行,故需將其修改為jmp無條件轉移指令<br><br>注意:因之前在je指令處下載過斷點,若想修改指令需刪除此處斷點
  • 註冊碼正確,感謝你的註冊!判斷<br>

image.png

  • 想不管輸入什麼都提示“註冊碼正確,感謝你的註冊!”這個提示就要使00510543處的跳轉不成立,<br>因原jne為不等於時轉移,但出現等於時跳轉不執行,故需二進位制編輯廢除此跳轉<br><br>注意:此方法廢除跳轉指令後,其背景顏色變灰,顯示資訊為跳轉不會執行
  • 執行測試<br>修改完畢,填寫任意註冊資訊,點選註冊<br><br>填寫任意資訊,提示註冊成功,顯示已註冊

真實註冊碼尋找

思路:在軟體執行時監測記憶體資料,查詢是否有敏感或可利用資訊<br>所用工具:Winhex

  • 執行軟體點選註冊<br>訂單號:112233<br>註冊碼:china123study<br>
  • 開啟Winhex進行分析<br>

image.png

註冊機編寫

在關鍵判斷("註冊碼正確,感謝你的註冊!")處發現EDX存在正確的註冊碼與所輸入的註冊碼進行對比,導致正確的註冊碼洩露,根據這一特點讀取EDX資料,利用軟體自身算碼機制計算出正確的註冊碼並調取使用<br>所用工具:x64dbg、keymaker2

  • 關鍵點<br><br>可在0051053E處下斷點讀取EDX資料
  • 因EDX資料在記憶體內,估使用keymaker2製作記憶體註冊機進行讀取資料<br>

767964_ZPG768G5W5H285F.gif<br>

  • 自身註冊碼對比機制洩露正確的註冊碼<br>
  • 使用keymaker2讀取記憶體資料,製作註冊機

image.png

  • 使用生成的註冊機在記憶體資料中讀取出正確的註冊碼<br>

暗樁

所用工具:x64dbg、od、winhex

  • 註冊判斷通過會在本機儲存註冊資料檔案“hdwlz.dll”,其儲存在“C:\Windows\system32”目錄<br>
  • 因系統防護原因導致它寫入註冊資訊失敗,進一步驗證了其註冊機制<br>
  • 切換環境成功寫入<br>
  • 檢視寫入的資料<br><br>對比發現寫入的是訂單資訊
  • 關閉程式後,發現註冊檔案被刪除,暗樁出現

image.png

  • 因刪除檔案使用的是DeleteFile函式,使用OD分析函式進行分析<br>

image.png<br>image.png<br>image.png<br>

  • 發現有兩次引用該刪除功能<br><br>
  • 在這兩次呼叫處下斷點進行分析

image.png

image.png

  • <br>先上尋找在程式入口處下個斷點<br>
  • 關閉程式,檢視斷點分析<br>關閉時,成功斷在入口處<br>
  • 步過分析到讀取hdwlz.dll檔案訂單資訊點

image.png

  • 步過分析到對比處<br>

image.png<br> 取EAX資料與0x1CD6D0做比較<br>image.png

  • 其中EAX資料未訂單號的十進位制資訊<br>
  • 關鍵跳轉大於1CD6D0(1890000)跳轉不刪除註冊檔案,小於1CD6D0(1890000)跳轉不執行刪除註冊檔案<br>

總結

  • 訂單號需大於1CD6D0(1890000)才不會觸發暗樁刪除註冊檔案(但程式關閉時執行判斷)<br>解決辦法:
  • 註冊時填寫的訂單號大於1890000
  • 或修改005181D3處的關鍵跳轉使其必跳JG改為JMP