about summary refs log tree commit diff stats
path: root/example/x86_32_mod.S
diff options
context:
space:
mode:
Diffstat (limited to 'example/x86_32_mod.S')
-rw-r--r--example/x86_32_mod.S35
1 files changed, 35 insertions, 0 deletions
diff --git a/example/x86_32_mod.S b/example/x86_32_mod.S
new file mode 100644
index 00000000..df7792af
--- /dev/null
+++ b/example/x86_32_mod.S
@@ -0,0 +1,35 @@
+main:
+    CALL test_automod
+    CALL test_automod
+    RET
+
+test_automod:
+    PUSH EBP
+    MOV  EBP, ESP
+
+loop:
+    MOV  EAX, 0
+    CMP  EAX, 0
+    JMP  mod_addr
+mod_addr:
+    JNZ  end
+
+    PUSH 0
+    PUSH title
+    PUSH msg
+    PUSH 0
+    CALL DWORD PTR [ MessageBoxA ]
+
+    ; automodif code
+    MOV BYTE PTR [mod_addr], 0xEB
+    JMP loop
+end:
+    MOV BYTE PTR [mod_addr], 0x75
+    MOV ESP, EBP
+    POP EBP
+    RET
+
+title:
+.string "Hello!"
+msg:
+.string "World!"