【发布时间】:2015-01-11 03:03:43
【问题描述】:
我正在尝试开发我认为可以称为启动器的东西?这个概念是将所有二进制文件写入缓冲区,然后将缓冲区加载到内存中。我经常看到这段代码跳来跳去(我已经编写了 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)();
}
我最初的想法是空字节可能会影响执行导致访问冲突,所以经过一些研究,我发现了一个格式为“/x41/x41/.......x41/”的消息框shellcode没有空字节,但这仍然没有奏效。我有点迷茫,因为没有太多关于此的信息。有没有人对一些好的文章或有用的教程有一些参考,因为我发现没有一个很有帮助。谢谢大家的时间!
【问题讨论】: