aboutsummaryrefslogtreecommitdiff
path: root/source/tools/old/shellcode.c
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2020-05-24 16:48:22 +0200
committerToni Uhlig <matzeton@googlemail.com>2020-05-25 21:57:14 +0200
commit31c69b6ca1b91e7fd9fd8e14082fd2584c5f538c (patch)
tree16e789c7d68608831b498f41f54d9482b82a711a /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.c46
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;
+}