diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2020-05-24 16:48:22 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2020-05-25 21:57:14 +0200 |
commit | 31c69b6ca1b91e7fd9fd8e14082fd2584c5f538c (patch) | |
tree | 16e789c7d68608831b498f41f54d9482b82a711a /source/tools/old/shellcode.c |
first public release
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'source/tools/old/shellcode.c')
-rw-r--r-- | source/tools/old/shellcode.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/source/tools/old/shellcode.c b/source/tools/old/shellcode.c new file mode 100644 index 0000000..8e57a02 --- /dev/null +++ b/source/tools/old/shellcode.c @@ -0,0 +1,46 @@ + +#include <windows.h> + +volatile const char *ShellCode __asm__("ShellCode") = ("\x6A\x00\x52\x53\x6A\x00\x89\xCB\xFF\xD3\xC3"); +volatile const char *lol __asm__("lol") = "LOLDUDE"; +volatile const char *lol2 __asm__("lol2") = "O_O"; + +typedef void (*MsgBoxFunc)(char*); + + +void run_test_shellcode(void) +{ + volatile static MsgBoxFunc MsgBoxA __asm__("kurwa") __attribute__((unused)); + + MsgBoxA = (MsgBoxFunc) GetProcAddress(LoadLibrary("user32.dll"),"MessageBoxA"); + /* execute code in .text AND .rdata segment */ + __asm__( + ".intel_syntax noprefix\n" + "mov ecx, kurwa\n\t" + "mov edx, [lol]\n\t" + "mov ebx, [lol2]\n\t" + "mov esi, ShellCode\n\t" + "call esi\n\t" + ".att_syntax\n" + ); + + /* execute code in .text segment ONLY */ + __asm__( + ".intel_syntax noprefix\n" + "mov ecx, kurwa\n\t" + "push 0x0\n\t" + "push [lol]\n\t" + "push [lol2]\n\t" + "push 0x0\n\t" + "mov ebx,ecx\n\t" + "call ebx\n\t" + ".att_syntax\n" + ); +} + +int main(int argc, char *argv[]) +{ + if (argc == 1) + run_test_shellcode(); + return 0; +} |