summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspv <aquaticvegetable@gmail.com>2022-05-11 11:41:29 -0400
committerspv <aquaticvegetable@gmail.com>2022-05-11 11:41:29 -0400
commitfe765137cd79a671dc3e6932bb867ef333611e73 (patch)
treeb6374e11a8beb31508946f3056ad6437ee1bf8fa
parent6181acb12524b30ddfb7eb75840d1de4ca2ca4b0 (diff)
add WIP c shellcode compilation
-rwxr-xr-xtools/build_native.sh12
-rw-r--r--tools/shc/shellcode.c10
2 files changed, 21 insertions, 1 deletions
diff --git a/tools/build_native.sh b/tools/build_native.sh
index 896562a..90ecb60 100755
--- a/tools/build_native.sh
+++ b/tools/build_native.sh
@@ -5,4 +5,14 @@ ldid -S bin/thread_shit
rm bin/testlol
gcc testlol.c -o bin/testlol --std=c99
-ldid -S bin/testlol \ No newline at end of file
+ldid -S bin/testlol
+
+rm bin/935csbypass
+gcc 935csbypass.c -o bin/935csbypass --std=c99 -marm
+ldid -S bin/935csbypass
+
+rm shc/bin/shellcode
+gcc shc/shellcode.c -o shc/bin/shellcode --std=c99 -marm -ffreestanding -c -fPIC
+#ldid -S shc/bin/shellcode
+
+otool -t shc/bin/shellcode -X | cut -d " " -f 2- | tr -d "\n" | xxd -r -ps > shc/bin/shellcode.bin \ No newline at end of file
diff --git a/tools/shc/shellcode.c b/tools/shc/shellcode.c
new file mode 100644
index 0000000..e48b51d
--- /dev/null
+++ b/tools/shc/shellcode.c
@@ -0,0 +1,10 @@
+/*
+ * native C shellcode
+ */
+
+typedef unsigned int uint32_t;
+
+void shellcode(void) {
+ *(uint32_t*)0x41414141 = 0x42424242;
+// __builtin_unreachable();
+} \ No newline at end of file