boot 发表于 2023-7-21 14:33

xDbg的“命令序列”功能,如何通过插件实现?

@yangand

yangand 发表于 2023-7-21 14:33

XDBG插件里关于搜索的接口只提供了两个, Find 和 FindMem 没有命令序列的接口,只能自己把命令序列转成字节码,再来搜索。

boot 发表于 2023-7-21 14:38

{:5_193:}学习写xDbg的插件的时候,遇到了些问题。 想要实现类似OD的“命令序列”搜索功能,是不是需要通过汇编转Hex,之后用Hex进行匹配?或者是通过其他思路处理?

黑刀 发表于 2023-7-21 16:52

boot 发表于 2023-7-21 14:38
学习写xDbg的插件的时候,遇到了些问题。 想要实现类似OD的“命令序列”搜索功能,是不是需要通过 ...

我认为从实现原理上来讲,就是指令转机器码的过程,然后搜索定位。

boot 发表于 2023-7-24 11:59

yangand 发表于 2023-7-21 14:33
XDBG插件里关于搜索的接口只提供了两个, Find 和 FindMem 没有命令序列的接口,只能自己把命令序列转成字节 ...

“汇编转字节码”是否需要借助github开源的汇编引擎?搜了几个,大多是字节码转汇编的……

yangand 发表于 2023-7-24 17:17

boot 发表于 2023-7-24 11:59
“汇编转字节码”是否需要借助github开源的汇编引擎?搜了几个,大多是字节码转汇编的…… ...

可以尝试通过下面XDBG提供的接口 先将一个地方改成要搜索的汇编指令,再复制这个地方的字节码。这样就不用自己去转字节码了。不过这个接口我没用过。
namespace Script
{
    namespace Assembler
    {
      SCRIPT_EXPORT bool Assemble(duint addr, unsigned char* dest, int* size, const char* instruction); //dest
      SCRIPT_EXPORT bool AssembleEx(duint addr, unsigned char* dest, int* size, const char* instruction, char* error); //dest, error
      SCRIPT_EXPORT bool AssembleMem(duint addr, const char* instruction);
      SCRIPT_EXPORT bool AssembleMemEx(duint addr, const char* instruction, int* size, char* error, bool fillnop); //error
    }; //Assembler
}; //Script

boot 发表于 2023-7-30 12:43

yangand 发表于 2023-7-24 17:17
可以尝试通过下面XDBG提供的接口 先将一个地方改成要搜索的汇编指令,再复制这个地方的字节码。这样就不 ...

汇编转字节码基本无误了。

还有一些问题,字节码是以CString显示的。

例如CString aaa = "B8 01 00 00 00";

BYTE bbb[] ={0xB8,0x01,0x00,0x00,0x00};转成bbb才能进行搜索匹配。

但是,从aaa转换成bbb有问题,你有好的转换方法吗?

yangand 发表于 2023-8-1 11:31

boot 发表于 2023-7-30 12:43
汇编转字节码基本无误了。

还有一些问题,字节码是以CString显示的。


昨天没上网,好像你已经解决了
页: [1]
查看完整版本: xDbg的“命令序列”功能,如何通过插件实现?