Fuzz的那些事

2022-09-06 11:06:18 字數 1050 閱讀 1907

fuzz這個詞彙行內的都懂,fuzz工具我就不多說了。

今天,說說fuzz前的準備工作--如何對軟體進行修改實現可自動化和無人值守fuzz.

很多軟體會有試用期、彈窗、覆蓋提示、人機互動等等,這些都會造成無人值守的fuzz平台無法繼續。

1.對於 註冊啟用提醒彈窗,我們可以直接爆破掉驗證函式,也可以分析註冊流程,寫序號產生器。

2.對於解壓縮這種軟體可能會出現覆蓋提示,如果程式中有設定最好了;如果可以爆破提示框,這樣也行,但是對於提示框,選項超級多的時候就麻煩了,分析每個按鈕,下拉列表功能,就太麻煩嗎;面對這種

情況,我給程式新增了新節,並修改了oep,在新節中放入shellcode,shellcode功能是根據傳入的命令列,找到要解壓的路徑,遍歷清空要解壓到的資料夾,這樣就不會提示覆蓋了。(我遇到的情況比這個還複雜)

記錄下詳情:1.新增節: 利用zeroadd.exe,網上有,隨便新增個節。2.修改新節屬性為可讀可寫可執行:利用exescope工具找到新節屬性位置(section flags ),並看看其他text節的屬性,利用hexworkshop工具,利用ctrl+g功能快速找到屬性所在位置,修改成和text節一樣的屬性即可。3:將shellcode複製到新節位置:利用hexworkshop工具,快速地位到新節在檔案中的位置(pointer to raw data ) ,直接利用hexeworkshop開啟shellcode的bin檔案,複製貼上過來就行。4,別忘記修改新節點的大小,大小一定要比shellcode大,如果太小,會造成shellcode無法完全載入到記憶體中,virtual size 和 size of raw data 都要修改一般都是200 400 800 這種。5.修改oep:oep位於optional header 中的entry point rva 直接修改為新節 rva/offse屬性值,就行,還是利用hexworkshop快速定位oep位置修改儲存 。6.跳回真正的oep:保留個源程式的副本,od跟蹤下真正的位址記錄下來,shellcode要預留jmp ***x 的空間,先預留幾個nop,使用od跟蹤,在shellcode執行完 將預留的nop 就改為jmp 記錄的真正oep位址(別忘記修復堆疊平衡)利用od的儲存工嗯那個將檔案儲存下來。

remap的那些事

月14日 今天還在看啟動 看到target.c這裡。先說說target.c的職責。target.c檔案包含和目標初始化相關的 如remap設定 系統時鐘設定和儲存器加速模組設定等,以及irq和fiq的異常處理空函式。好吧,這裡 看到了remap就好好查資料把它搞清楚咯!其實我前面看過這個了,只是人上...

AfxWinMain的那些事

afxwinmain函式原形如下 去掉了原來的很多沒用的注釋和累贅 cpp view plain copy print?int afxapi afxwinmain afxwininit函式 建立當前應用程式主線程 initinstance函式 內部通過create 函式來完成視窗的註冊,建立更新和顯...

void 的那些事

參考 void 是一種特殊的指標型別,可用於存放任意物件的位址。舉個例子 int p 0,pi p void pv p pv pd 但是一旦某個位址放到了void pv中,就不能利用 pv進行操作了 void 中存放的是未知物件的位址,所以無法操作該指標所指向的內容,但是可以對該指標進行操作,比如賦...