我如何在字符串变量中运行ASM操作码或将其转换为字节?

问题描述 投票:1回答:2

我在字符串属性中具有这段asm代码:

mov [ecx+ebx*4+10],ff
jmp client.dll+3A8D96

进入我要实现的目标之前,首先我将client.dll + ...更改为它的最终地址。

现在我正在尝试实现的是:

  • 将那段asm代码转换为等效字节,以便在使用winapi ..]将其更改后,我可以将这些字节写回到内存中。

  • 或以某种方式将字符串的内容

    写入分配的内存中,如果不将其转换为字节.. idk
  • 似乎是不可能的

    我不知道是否可能,但我也有这个主意:

  • 用C ++制作一个具有可以从我的C#应用​​程序导入的功能的dll
  • [通过传递asm操作码和分配的内存地址作为参数来使用我的目标(不是c ++专家),但我知道在c ++中可以使用内联asm。
  • 请记住,本文中给出的ASM代码只是为了演示我正在尝试做的事情,实际上它会发生很大变化,希望您能理解。

我在字符串属性中有这段asm代码:mov [ecx + ebx * 4 + 10],ff jmp client.dll + 3A8D96,在进入我要实现的目标之前,首先我将更改client.dll + ...进入最终的...

c# c++ assembly opcode
2个回答
0
投票

如果您使用的是C#,我建议您使用包装器来写入进程内存,并导入必要的dll等,并获取您的asm操作码的原始字节,并按照自己的意愿进行操作

如果您使用的是c ++,则可以直接使用这些函数而无需获取包装器等;大多数功能都在C ++库中]


0
投票

这远没有解决您的全部问题(C#...),但可以为您提供一些线索。

此示例在Linux-64上使用gcc在C中完成;您可能需要适应它您的平台。

© www.soinside.com 2019 - 2024. All rights reserved.