mirror of
https://github.com/morluto/rea.git
synced 2026-11-14 10:43:30 +00:00
* feat(native): add UI and dispatch investigation workflows * feat(ghidra): support macOS host validation * docs: update native investigation capabilities * feat(artifacts): decode compiled Interface Builder archives * feat(ghidra): expose bounded p-code value flow * test(ghidra): split host and cross-format verification * fix(verify): follow complete result contracts * refactor: remove unused authorization and schema helpers * refactor: remove unused evidence result alias * fix(ghidra): report jump-table evidence precisely * fix(verify): align browser scenario fixture schema * fix(setup): compare parsed client config structurally * test(ghidra): verify AArch64 jump-table mappings * fix(ghidra): recover AArch64 byte jump tables * test(artifacts): verify compiled interface builder archives * feat(native): trace UI actions through handlers * fix(tests): update native trace and shutdown fixtures * fix(verification): diagnose browser scenario failures * fix(browser): wrap scenario snapshots in capture state * fix(native): bind and bound investigation workflows * fix(artifacts): preserve bounded interface builder evidence * fix(ghidra): enforce admitted hosts and preflight tools * fix(native): preserve trace cancellation and bounds * test(application): expect bound analysis target evidence * fix(native): preserve investigation bounds and cancellation * fix(application): preserve bundle and unresolved trace evidence * style(test): format artifact subject fixture
86 lines
2.4 KiB
C
86 lines
2.4 KiB
C
typedef int (*rea_cross_callback)(int);
|
|
|
|
volatile int rea_cross_global = 7;
|
|
const volatile char rea_cross_message[] = "REA_GHIDRA_CROSS_FORMAT";
|
|
|
|
__attribute__((noinline, used)) int rea_cross_leaf(int value) {
|
|
return value + rea_cross_global + rea_cross_message[0] - 'R';
|
|
}
|
|
|
|
__attribute__((noinline, used)) int rea_cross_branch(int value) {
|
|
if (value > 10) {
|
|
return rea_cross_leaf(value);
|
|
}
|
|
return rea_cross_leaf(-value);
|
|
}
|
|
|
|
__attribute__((noinline, used)) int rea_cross_indirect(
|
|
rea_cross_callback callback, int value) {
|
|
return callback(value);
|
|
}
|
|
|
|
#define REA_CROSS_SWITCH_CASE(case_value) \
|
|
case case_value: \
|
|
return rea_cross_leaf(payload + case_value)
|
|
|
|
__attribute__((noinline, used)) int rea_cross_dense_switch(unsigned int selector,
|
|
int payload) {
|
|
switch (selector) {
|
|
REA_CROSS_SWITCH_CASE(0);
|
|
REA_CROSS_SWITCH_CASE(1);
|
|
REA_CROSS_SWITCH_CASE(2);
|
|
REA_CROSS_SWITCH_CASE(3);
|
|
REA_CROSS_SWITCH_CASE(4);
|
|
REA_CROSS_SWITCH_CASE(5);
|
|
REA_CROSS_SWITCH_CASE(6);
|
|
REA_CROSS_SWITCH_CASE(7);
|
|
REA_CROSS_SWITCH_CASE(8);
|
|
REA_CROSS_SWITCH_CASE(9);
|
|
REA_CROSS_SWITCH_CASE(10);
|
|
REA_CROSS_SWITCH_CASE(11);
|
|
REA_CROSS_SWITCH_CASE(12);
|
|
REA_CROSS_SWITCH_CASE(13);
|
|
REA_CROSS_SWITCH_CASE(14);
|
|
REA_CROSS_SWITCH_CASE(15);
|
|
REA_CROSS_SWITCH_CASE(16);
|
|
REA_CROSS_SWITCH_CASE(17);
|
|
REA_CROSS_SWITCH_CASE(18);
|
|
REA_CROSS_SWITCH_CASE(19);
|
|
REA_CROSS_SWITCH_CASE(20);
|
|
REA_CROSS_SWITCH_CASE(21);
|
|
REA_CROSS_SWITCH_CASE(22);
|
|
REA_CROSS_SWITCH_CASE(23);
|
|
REA_CROSS_SWITCH_CASE(24);
|
|
REA_CROSS_SWITCH_CASE(25);
|
|
REA_CROSS_SWITCH_CASE(26);
|
|
REA_CROSS_SWITCH_CASE(27);
|
|
REA_CROSS_SWITCH_CASE(28);
|
|
REA_CROSS_SWITCH_CASE(29);
|
|
REA_CROSS_SWITCH_CASE(30);
|
|
REA_CROSS_SWITCH_CASE(31);
|
|
REA_CROSS_SWITCH_CASE(32);
|
|
REA_CROSS_SWITCH_CASE(33);
|
|
REA_CROSS_SWITCH_CASE(34);
|
|
REA_CROSS_SWITCH_CASE(35);
|
|
REA_CROSS_SWITCH_CASE(36);
|
|
REA_CROSS_SWITCH_CASE(37);
|
|
REA_CROSS_SWITCH_CASE(38);
|
|
REA_CROSS_SWITCH_CASE(39);
|
|
default:
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
#undef REA_CROSS_SWITCH_CASE
|
|
|
|
__attribute__((noinline, used, visibility("default"))) int rea_cross_entry(void) {
|
|
return rea_cross_branch(35) + rea_cross_indirect(rea_cross_leaf, 0);
|
|
}
|
|
|
|
__attribute__((used, visibility("default"))) void rea_cross_start(void) {
|
|
volatile int result = rea_cross_entry();
|
|
(void)result;
|
|
for (;;) {
|
|
}
|
|
}
|