【x64dbg 2020-08-16 04:44:56 plugin】中文搜索插件 开发交流
本帖最后由 durongze 于 2020-8-31 03:40 编辑首先感谢‘夜风流’‘罗聪’‘肖梓航’各位我不认识的人。{:1_896:}只是在网上可能看到过你们写的资料。
第一部分 :写给正在写插件的人。
最新版本插件相关的接口和1.x 相关接口的差异介绍:
1. 初始化接口:这个接口决定了插件是否能被加载。主要作用是告知主程序本插件的名称,版本的信息。
新版:bool PlugInit(PLUG_INITSTRUCT* initStruct);
旧版:intODBG_Plugininit(int ollydbgversion, HWND hw, ulong *features);
2. 停止接口
新版:bool PlugStop();
旧版:intODBG_Pluginclose(void);
3. 设置接口 :用来在主程序的各区域子窗口创建菜单。
新版:void PlugSetup(PLUG_SETUPSTRUCT* setupStruct);//
旧版:int ODBG_Pluginmenu(int origin, char data, void *item)
4. 功能接口:主程序通知插件用户点击了菜单。
新版:void CbMenuEntry(CBTYPE cbType, void* callbackInfo) ;
旧版:intRegisterpluginclass(char *classname, char *iconname, HINSTANCE dllinst, WNDPROC classproc)//新版的函数和老版这个函数的最后一个参数功能是一样的。
第二部分:对功能接口的实现。
1.x的插件貌似实现了以下3个主要功能:
void Find(HWND hWnd);
void FindNext(HWND hWnd);
void FindPrevious(HWND hWnd);
第三部分:目前本人遇到的问题。
这个周末在网上看了很多帖子,分析了下老版的中文搜索插件,发现老版插件依赖的老版sdk接口,在新版中已经找不到对应的痕迹(是我找不到),
有哪位热心的人能回答一下,以下24个老sdk接口和新版的哪些接口比较类似 ?我想下个周末将这个插件整出来,希望大侠们能给本人指点一二。
// 前四个是不是就是个打印?
1.voidAddtolist(long addr, int highlight, char *format, ...);
2. voidInfoline(char *format, ...);
3. voidProgress(int promille, char *format, ...);
4. voidFlash(char *format, ...);
5. t_memory* Findmemory(ulong addr);// 新版接口是否是: DbgMemFindBaseAddr(addr, &size);
6. ulong Readmemory(void *buf, ulong addr, ulong size, int mode) ;// 新版接口是否是:DbgMemRead(addr, buf, size)
7. ulong Readcommand(ulong ip, char *cmd) ; // 新版接口是否是:DbgMemRead(ip, cmd, size)
8. ulong Disasm(uchar *src, ulong srcsize, ulong srcip, uchar *srcdec,t_disasm *disasm, int disasmmode, ulong threadid); // 新版接口是否是:DbgDisasmAt(addr, &instr);
9. uchar* Finddecode(ulong addr, ulong *psize); //
10. int Gettext(char *title, char *text,char letter, int type, int fontindex) ; //
11. int Createsorteddata(t_sorted *sd, char *name, int itemsize, int nmax, SORTFUNC *sortfunc, DESTFUNC *destfunc) ; //
12. void Destroysorteddata(t_sorted *sd);
13. void *Addsorteddata(t_sorted *sd, void *item);
14. void Deletesorteddatarange(t_sorted *sd, ulong addr0, ulong addr1);
15. void* Getsortedbyselection(t_sorted *sd, int index);
16. int Tablefunction(t_table *pt, HWND hw, UINT msg, WPARAM wp, LPARAM lp);
17. void Painttable(HWND hw, t_table *pt, DRAWFUNC getline);
18. void Selectandscroll(t_table *pt, int index, int mode);
19. int Insertname(ulong addr, int type, char *name);
20. int Findname(ulong addr, int type, char *name);
21. ulong Getcputhreadid(void) ; // 新版接口是否是:DbgGetThreadId();
22. HWND Quicktablewindow(t_table *pt, int nlines, int maxcolumns, char *winclass, char *wintitle);//
23. void Setcpu(ulong threadid, ulong asmaddr, ulong dumpaddr, ulong stackaddr, int mode); //
24. void Getdisassemblerrange(ulong *pbase, ulong *psize) ;// 新版接口是否是:DbgDisasmAt(addr, &instr);
不错,很有用的。 感谢楼主分享 没有打包好的工具吗? 感謝熱心之士,受益無窮。 redapple2015 发表于 2020-8-31 09:09
没有打包好的工具吗?
正准备做呢。快的话,下周一应该可以出第一个版本,如果还是没搞懂第三部分的问题的话,估计还需要延迟。最晚的话,我会在十月一日的假期,争取做出来。 貌似可以显示中文,就是还存在问题。 假期结束啦。做出来了没有 老铁
我有个问题想问x64dbg的内存窗口UNICODE是不是没法正确显示中文啊。我这只能显示数字和字母 confuses888 发表于 2020-10-8 15:59
假期结束啦。做出来了没有 老铁
我有个问题想问x64dbg的内存窗口UNICODE是不是没法正确显示中文啊。我这 ...
生活无法保证了,准备放弃这个计划。先谋生去了。。。。。。。:lol 很期待,可惜放弃了
页:
[1]
2