我试图研究我认为被称为发射器的东西?概念是将所有二进制文件写入缓冲区,然后将缓冲区加载到内存中.我已经看到这个代码反复弹跳(我编写了exe,所以我可以访问其中的代码.):
//HardCoded Binary For testing Reason, reading to launch didn't work neither did this
char RawCode[11414] = {
0x4D, 0x5A, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0xFF, 0xFF, ............................................... 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}
//Main Function
int main(int argc, char* argv[])
{
int(*f)();
f = (int(*)())&RawCode;
(int)(*f)();
}
Run Code Online (Sandbox Code Playgroud)
我的原始想法可能是空字节影响执行导致访问冲突,所以经过一些研究后我发现一个消息框shellcode格式为"/x41/x41/.......x41/",没有空字节而这仍然没有奏效.由于没有太多关于此的信息,我有点迷茫.有没有人对一些好的文章或有用的教程有一些参考,因为我找不到任何帮助.谢谢大家的时间!