|
5驿站币
- char shellcode[] = "\xfc\xe8\x89";
- void *exec = VirtualAlloc(0, sizeof shellcode, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
- memcpy(exec, shellcode,sizeof shellcode);
- ((void(*)())exec)();
复制代码
把shellcode写入代码中直接运行没有问题
但是比如我通过网页来获取shellcode,shellcode就会被当成字符串。不知如何转换 |
最佳答案
查看完整内容
默认二进制的话是楼主描述的情形:char shellcode[] = "\xfc\xe8\x89";
如果是网页传输的话,那么就是字符串了,所以样子应该是:char shellcode_str[] = "\\xfc\\xe8\\x89";
那么就需要转换了:
先把字符串用 \\x 分割,之后把每一段用 sscanf 的 %x 以十六进制的形式进行转换就可以了
上一篇: SetItemText错误下一篇: libiconv库
|