-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
混淆后的代码执行失败 #2
Comments
样例中 ShellCode 的调用位置要加一个偏移,调用参数是 LoadLibraryA("user32"),你可以看一下 README。比较建议运行生成的内联汇编,因为这样可以避免申请内存的敏感行为。 |
成功了🙏,之前是输出问题,漏了几行代码 |
还有一个问题包括代码里也提到的,不支持类似jcc寄存器跳转像jmp rax和gs指令,现在大部分shellcode生成基本上都是通过gs和fs获取modulebase,这个导致过去一些项目生成的shellcode就没法兼容了 |
出现 jmp rax 这种可能是因为用了 switch case,改成 if else 就没有了。 |
你好,刚测试混淆shellcode执行失败了,无法正常弹窗


代码:示例代码
编译环境:VS2019 clang,配置如下
测试使用了
#include <stdio.h>
unsigned char obf_shellcode[] = {......};
int main() {
void (func)() = (void ()())obf_shellcode;
asm volatile (
"call *%0"
:
: "r"(func)
:
);
}
和传统的执行方式,都失败了
void* p = VirtualAlloc(NULL, sizeof data, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(p, data, sizeof data);
((void(*)())p)();
是执行方式的问题还是什么原因,麻烦大佬给个执行示例,谢谢~
The text was updated successfully, but these errors were encountered: