Skip to content

Commit 8f97a1d

Browse files
[queries] minor updates to linux experiment queries
1 parent ec5f374 commit 8f97a1d

File tree

2 files changed

+35
-25
lines changed

2 files changed

+35
-25
lines changed

experiments/linux/queries/fineibt_gadgets.sql

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -34,31 +34,35 @@ AND CAST(n_instr AS INT) <= 15
3434

3535
UNION ALL
3636

37-
-- Total number of non-reachable gadgets with a maximum of 4 dependent loads
38-
-- within 15 instructions, reported in Section 9 - FineIBT bypass.
37+
-- Total number of dispatchers with a secret load that does not depend
38+
-- on the call expression, reported in Section 9 - FineIBT bypass.
3939
SELECT "FineIBT half-gadget dispatchers", COUNT(DISTINCT pc)
4040
FROM all_tfps
4141
WHERE
42-
requirements NOT like "%{'regs': [], %"
43-
AND contains_spec_stop = 'False'
44-
AND CAST(n_instr AS INT) < 30
45-
AND
46-
(
47-
(rsi_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rsi_expr LIKE "%LOAD%")
48-
OR (rdi_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rdi_expr LIKE "%LOAD%")
49-
OR (rax_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rax_expr LIKE "%LOAD%")
50-
OR (rbx_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rbx_expr LIKE "%LOAD%")
51-
OR (rcx_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rcx_expr LIKE "%LOAD%")
52-
OR (rdx_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rdx_expr LIKE "%LOAD%")
53-
OR (r8_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r8_expr LIKE "%LOAD%")
54-
OR (r9_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r9_expr LIKE "%LOAD%")
55-
OR (r10_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r10_expr LIKE "%LOAD%")
56-
OR (r11_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r11_expr LIKE "%LOAD%")
57-
OR (r12_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r12_expr LIKE "%LOAD%")
58-
OR (r13_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r13_expr LIKE "%LOAD%")
59-
OR (r14_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r14_expr LIKE "%LOAD%")
60-
OR (r15_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r15_expr LIKE "%LOAD%")
61-
OR (rbp_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rbp_expr LIKE "%LOAD%")
62-
OR (rsp_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rsp_expr LIKE "%LOAD%")
63-
)
64-
;
42+
contains_spec_stop = 'False'
43+
AND secrets NOT like "[]"
44+
AND name in reachable
45+
;
46+
47+
-- requirements NOT like "%{'regs': [], %"
48+
-- AND contains_spec_stop = 'False'
49+
-- AND CAST(n_instr AS INT) < 30
50+
-- AND
51+
-- (
52+
-- (rsi_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rsi_expr LIKE "%LOAD%")
53+
-- OR (rdi_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rdi_expr LIKE "%LOAD%")
54+
-- OR (rax_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rax_expr LIKE "%LOAD%")
55+
-- OR (rbx_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rbx_expr LIKE "%LOAD%")
56+
-- OR (rcx_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rcx_expr LIKE "%LOAD%")
57+
-- OR (rdx_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rdx_expr LIKE "%LOAD%")
58+
-- OR (r8_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r8_expr LIKE "%LOAD%")
59+
-- OR (r9_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r9_expr LIKE "%LOAD%")
60+
-- OR (r10_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r10_expr LIKE "%LOAD%")
61+
-- OR (r11_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r11_expr LIKE "%LOAD%")
62+
-- OR (r12_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r12_expr LIKE "%LOAD%")
63+
-- OR (r13_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r13_expr LIKE "%LOAD%")
64+
-- OR (r14_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r14_expr LIKE "%LOAD%")
65+
-- OR (r15_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND r15_expr LIKE "%LOAD%")
66+
-- OR (rbp_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rbp_expr LIKE "%LOAD%")
67+
-- OR (rsp_control = 'TFPRegisterControlType.POTENTIAL_SECRET' AND rsp_expr LIKE "%LOAD%")
68+
-- )

experiments/linux/scripts/run-queries.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,9 @@ echo "[-] Get stats for exploitable gadgets"
66
sqlite3 gadgets.db -cmd '.mode table' < queries/exploitable_stats.sql
77
echo "[-] Get stats for non-exploitable gadgets"
88
sqlite3 gadgets.db -cmd '.mode table' < queries/non_exploitable_stats.sql
9+
echo "[-] Get stats for fineibt gadgets"
10+
sqlite3 gadgets.db -cmd '.mode table' < queries/fineibt_gadgets.sql
11+
echo "[-] Get stats for tfps"
12+
sqlite3 gadgets.db -cmd '.mode table' < queries/exploitable_tfps.sql
13+
echo "[-] Get stats for exploitable slam gadgets"
14+
sqlite3 gadgets.db -cmd '.mode table' < queries/exploitable_slam.sql

0 commit comments

Comments
 (0)