在制作我的内存r / w库的过程中,我想过制作一个名为AssemblyToHex
的方法,但为此,我要么需要一个已经制作好的汇编器,要么自己制作一个。我想做自己的。说到这一点,这种方法的工作方式是这样的:
public string AssemblyToHex(string instruction)
{
//Divide "instruction" into string array e.g. "mov eax,[edi+04]" = new[] { "mov", "eax", "[edi+04]" };
//Here it will compare the opcode to its hex representation (which wont be a issue to make)
//returns the Hex representation of the instruction.
}
如何将指令分成字符串数组?我知道有一个.Split()
功能,我认为这是我需要的东西,但我不知道该怎么做。我需要划分有逗号和空格的地方,例如:
cvtsi2ss xmm0,edx = { "cvtsi2ss", "xmm0", "edx" }
push 00 = { "push", "00" }
mov [ecx+0C],0x447A0000 = { "mov", "[ecx+0C]", "0x447A0000" }
答案 0 :(得分:1)
var instructionArray = instruction.Split(' ', ',');
答案 1 :(得分:1)
尝试:
mystring.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries)
如果您不使用该选项," cvtsi2ss xmm0,edx"将在数组中为您提供一个空字符串条目。