OllyDbg Plugin SDK( 修改版 ):
sdkupdat.zip
設置步驟
添加資源
- 將上方SDK中的
plugin.h
和ollydbgvc7.lib
拉到當前項目中
標頭檔
→右鍵
→加入
→現有項目
→選擇plugin.h
- 將
ollydbgvc7.lib
從VS2019中直接拖入,目錄大概長這樣:
VS2019設置
- 先創建一個Dll項目,然後把dllmain刪去
屬性
→進階
→字元集
→多位元組
屬性
→C/C++
→所有選項
→其他選項:/J
( 意思就是默認所有char都是unsigned char )
屬性
→C/C++
→先行編譯的標頭檔
→未使用
調試相關
為了方便調試,可將OD拖入當前項目中
- 設置Dll生成路徑:
屬性
→連結器
→一般
→輸出檔案
→[OD插件目錄的路徑\]+dllName.dll
( 例如:C:\Users\MSI-PC\Desktop\A\逆向\MyFirstOdPluginSolution\MyFirstOdPlugin\Ollydbg\plugin\MyFirstDll.dll
)
- 設置Dll調試:
屬性
→偵錯
→命令:C:\Users\MSI-PC\Desktop\A\逆向\MyFirstOdPluginSolution\MyFirstOdPlugin\Ollydbg\吾爱破解[LCG].exe
必要&重要的函數
隨便新建一個.cpp
,即可按如下模板開始編寫腳本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| #include <Windows.h> #include "plugin.h" #include <iostream>
extc int _export cdecl ODBG_Plugindata(char* shortname) { const char* pluginName = "我的插件例子"; strcpy_s(shortname, strlen(pluginName) + 1, pluginName); return PLUGIN_VERSION; }
extc int _export cdecl _ODBG_Plugininit(int ollydbgversion, HWND hw, ulong* features){
if (ollydbgversion < PLUGIN_VERSION) { return -1; } return 0; }
extc int _export cdecl _ODBG_Pluginmenu(int origin, char data[4096], void* item){ if (origin == PM_MAIN) { strcpy_s(data, 4096, "0&頂部子菜單一,1&頂部子菜單二"); }
if (origin == PM_DISASM) { strcpy_s(data, 4096, "反匯編窗口的右鍵菜單{11&右鍵子菜單一,22&右鍵子菜單二}"); } return TRUE; }
extc void _export cdecl _ODBG_Pluginaction(int origin, int action, void* item) { if (origin == PM_MAIN) { switch (action) { case 0: MessageBox(0, "頂部子菜單一", "標題", MB_OK); break; case 1: MessageBox(0, "頂部子菜單二", "標題", MB_OK); break; default: break; } } if (origin == PM_DISASM) { switch (action) { case 11: MessageBox(0, "右鍵子菜單一", "標題", MB_OK); break; case 22: MessageBox(0, "右鍵子菜單二", "標題", MB_OK); break; default: break; } } }
|
資訊來源