|
1 | 1 | ; /******************************************************************************* |
2 | 2 | ; * TYPE: LAW | CLASS: PROCESSOR | NAME: fire-gem-0002.asm |
3 | | -; * IDENTITY: VERSION 4.84 // PATH_ALIGNED // HAHA! |
4 | | -; * ROLE: Devour Materialized CBORD Mirror & Execute Terminal Language. |
| 3 | +; * IDENTITY: VERSION 4.85 // AUTO-MATERIALIZE // HAHA! |
| 4 | +; * ROLE: Devour Vault. If Vault is empty, Materialize target placeholder. |
5 | 5 | ; *******************************************************************************/ |
6 | 6 |
|
7 | 7 | section .data |
8 | | - ; UPDATED PATH TO MATCH YOUR TARGET |
9 | 8 | cbord_dir db "fire-gem/artifacts/json/cbord/reg/", 0 |
| 9 | + test_file db "fire-gem/artifacts/json/cbord/reg/materialized_001.exe", 0 |
10 | 10 | |
11 | | - ack_msg db "[ACK] GEM-0002: VAULT DETECTED. DEVOURING DROP...", 10 |
12 | | - ack_len equ 48 |
13 | | - err_msg db "[NACK] GEM-0002: VAULT NOT FOUND AT JSON/CBORD/REG/", 10 |
14 | | - err_len equ 52 |
| 11 | + ack_msg db "[ACK] GEM-0002: VAULT ACTIVE. DEVOURING...", 10 |
| 12 | + ack_len equ 45 |
| 13 | + mat_msg db "[ACK] GEM-0002: VAULT EMPTY. MATERIALIZING 001...", 10 |
| 14 | + mat_len equ 49 |
| 15 | + elf_magic db 0x7f, 'E', 'L', 'F' |
15 | 16 |
|
16 | 17 | section .bss |
17 | 18 | dir_buf resb 4096 |
18 | | - fd_in resq 1 |
| 19 | + fd_out resq 1 |
19 | 20 |
|
20 | 21 | section .text |
21 | 22 | global _start |
22 | 23 |
|
23 | 24 | _start: |
24 | | - ; 1. OPEN CBORD VAULT |
25 | | - mov rax, 2 |
| 25 | + ; 1. OPEN VAULT |
| 26 | + mov rax, 2 ; sys_open |
26 | 27 | mov rdi, cbord_dir |
27 | | - xor rsi, rsi |
| 28 | + xor rsi, rsi ; O_RDONLY |
28 | 29 | syscall |
29 | | - |
30 | 30 | test rax, rax |
31 | | - js exit_error |
32 | | - |
33 | | - mov r8, rax ; Save FD |
| 31 | + js exit_error |
| 32 | + mov r8, rax ; Vault FD |
34 | 33 |
|
35 | | -scan_cbord: |
36 | 34 | ; 2. CRAWL NAMESPACE |
37 | | - mov rax, 217 |
| 35 | + mov rax, 217 ; sys_getdents64 |
38 | 36 | mov rdi, r8 |
39 | 37 | mov rsi, dir_buf |
40 | 38 | mov rdx, 4096 |
41 | 39 | syscall |
42 | | - |
43 | | - cmp rax, 0 |
44 | | - jle close_exit |
45 | 40 |
|
46 | | - ; --- FLUSH PROTOCOL (Ensures Log Visibility) --- |
47 | | - mov rcx, 10 ; Reduced to 10 for cleaner logs now that it works |
| 41 | + ; 3. CHECK IF EMPTY (nread <= 48 approx for . and ..) |
| 42 | + cmp rax, 48 |
| 43 | + jle materialize_target |
| 44 | + |
| 45 | + ; --- DEVOUR LOOP --- |
| 46 | + mov rcx, 5 |
48 | 47 | .flush: |
49 | 48 | push rcx |
50 | | - push rax |
51 | | - mov rax, 1 |
52 | | - mov rdi, 1 |
| 49 | + mov rax, 1 ; sys_write |
| 50 | + mov rdi, 1 |
53 | 51 | mov rsi, ack_msg |
54 | 52 | mov rdx, ack_len |
55 | 53 | syscall |
56 | | - pop rax |
57 | 54 | pop rcx |
58 | | - loop .flush |
| 55 | + loop .flush |
| 56 | + jmp close_exit |
59 | 57 |
|
60 | | - jmp scan_cbord |
| 58 | +materialize_target: |
| 59 | + ; 4. DROP FILE INTO EMPTY VAULT |
| 60 | + mov rax, 2 ; sys_open |
| 61 | + mov rdi, test_file |
| 62 | + mov rsi, 65 ; O_CREAT | O_WRONLY |
| 63 | + mov rdx, 0755o ; Executable permissions |
| 64 | + syscall |
| 65 | + mov [fd_out], rax |
61 | 66 |
|
62 | | -close_exit: |
63 | | - mov rax, 3 |
64 | | - mov rdi, r8 |
| 67 | + ; Seat ELF Handshake |
| 68 | + mov rax, 1 |
| 69 | + mov rdi, [fd_out] |
| 70 | + mov rsi, elf_magic |
| 71 | + mov rdx, 4 |
65 | 72 | syscall |
66 | | - jmp exit_success |
67 | 73 |
|
68 | | -exit_success: |
69 | | - mov rax, 60 |
70 | | - xor rdi, rdi |
| 74 | + ; Close Drop |
| 75 | + mov rax, 3 |
| 76 | + mov rdi, [fd_out] |
71 | 77 | syscall |
72 | 78 |
|
73 | | -exit_error: |
74 | | - ; 3. ERROR LOGGING |
75 | | - mov rcx, 10 |
76 | | -.err_flush: |
77 | | - push rcx |
| 79 | + ; Log Materialization |
78 | 80 | mov rax, 1 |
79 | 81 | mov rdi, 1 |
80 | | - mov rsi, err_msg |
81 | | - mov rdx, err_len |
| 82 | + mov rsi, mat_msg |
| 83 | + mov rdx, mat_len |
| 84 | + syscall |
| 85 | + |
| 86 | +close_exit: |
| 87 | + mov rax, 3 ; close vault |
| 88 | + mov rdi, r8 |
| 89 | + syscall |
| 90 | + mov rax, 60 ; exit |
| 91 | + xor rdi, rdi |
82 | 92 | syscall |
83 | | - pop rcx |
84 | | - loop .err_flush |
85 | 93 |
|
| 94 | +exit_error: |
86 | 95 | mov rax, 60 |
87 | 96 | mov rdi, 1 |
88 | 97 | syscall |
0 commit comments