Commit graph

138 commits

Author SHA1 Message Date
dword64
81144e520a fix(optimizer): prevent unsafe thunk folding from deleting valid blocks ( #80 ) 2026-04-04 20:31:21 +02:00
dword64
667eea2b1e unique_ptr ownership, safer virtual interfaces, and pch/unity speedups and more 2026-04-04 20:13:26 +02:00
dword64
4292245507 possible fix tracer stack overflow vulnerabilities (#52 , #78 ), cap/keystone version bump, #79 and #81 2026-04-01 16:57:42 +02:00
wallds
df0d9a166e Fix infinite loop 2022-02-07 10:47:26 +08:00
wallds
a80de3bc24 Revert https://github.com/vtil-project/VTIL-Core/pull/60, fix testcase. 2022-01-25 19:10:27 +08:00
zZzetaS
e8ab45e1db Added more test cases, added fix for synthetic bug described by wallds, added exhaust_pass to apply_all 2022-01-20 03:45:19 +01:00
zZzetaS
32ee99ee8d merged & added tests for bblock_thunk_removal_pass 2022-01-14 22:55:20 +01:00
z3t4s
4120ebeab8 Fixed invalid pointer from deleting blocks while in recursive call 2022-01-14 17:01:04 +01:00
Duncan Ogilvie
033c7577ce Improve CMake and add instructions to README 2022-01-14 16:32:31 +01:00
z3t4s
e9e5df0941 Fixed nullptr and added handling for js with identical destinations 2022-01-14 00:15:48 +01:00
z3t4s
617df086bf Applied fixes that are not yet available in master. Also added a new thunk removal pass 2022-01-12 23:42:06 +01:00
windy
70bfb43944 Change the stack_pointer expression to relative position in is_used, so when detecting whether the stack accessing can be discarded (auxiliaries.cpp#L159) can get right result when meet muti-block 2022-01-10 22:39:59 +01:00
Can Bölük
bf80720098
Merge pull request #58 from abay12676/master
fix register corrupt
2021-10-30 19:30:49 +03:00
Alah
1a2355cb79
fix register corrupt 2021-09-25 16:55:13 -04:00
windy
ffaf8ca91f Add unit tests for optimization passes 2021-08-20 13:03:49 +08:00
windy
566d2a998c Fix constexpr compile error 2021-08-18 22:05:41 +08:00
windy
57fda60379 Fix all warning in x86 2021-08-17 23:24:32 +08:00
windy
4c465af036 Fix x86 optimizers, demo-tests:
```
:: After:
 | | Entry point VIP:       0x1337
 | | Stack pointer:         -0x8
 | | Already visited?:      N
 | | ------------------------
 | | 0000: [ PSEUDO ]     -0x8     movd     eax          0x1
 | | 0001: [ PSEUDO ]     -0x8     strd     $sp          -0x4         0x0
 | | 0002: [ PSEUDO ]     -0x8     strd     $sp          -0x8         0x1
 | | 0003: [ PSEUDO ]     -0x8     vpinrd   eax
 | | 0004: [ PSEUDO ]     -0x8     vexitq   0x0
```
2021-08-16 02:54:00 +08:00
windy
37b436a584 x86 Test OK 2021-08-08 23:16:28 +08:00
windy
1004668b55 Add build docs for Visual Studio 2021-08-02 23:41:48 +08:00
Can Bölük
4f9abc25c0 Removing some redundancies. 2020-08-28 07:11:08 +02:00
Can Bölük
9d7b5e4980 Implementing task_local to fix thread_local leaks. 2020-08-25 06:55:17 +02:00
Can Bölük
a25ce864fe Routine uses unordered_map now, other minor changes. 2020-08-24 04:38:15 +02:00
Can Bölük
18271c817e Moving transform_parallel to utility. 2020-08-24 04:28:40 +02:00
Can Bölük
0b316c6cfd Implemented basic std::fs support, reworked time/iterator helpers. 2020-08-24 04:00:44 +02:00
Can Bölük
3c3687636e Fixing typo in the fix. 2020-08-23 10:49:49 +02:00
Can Bölük
222b6d4390 Fixing out-of-constraint access in is_used. 2020-08-23 10:31:41 +02:00
Can Bölük
0a1d015eba Minimal pass re-ordering. 2020-08-23 06:54:36 +02:00
Can Bölük
6cbead72cc Minor logic fixes. 2020-08-23 06:40:55 +02:00
Can Bölük
eb82631fd6 Implementing parallel-df DCE. 2020-08-23 05:44:25 +02:00
Can Bölük
0bbc82b8f8 Implemented optimizer::execution_order. 2020-08-23 05:44:11 +02:00
Can Bölük
c0e26276ab Moved is_semantic_nop and remove_nops to auxiliaries. 2020-08-23 02:07:16 +02:00
Can Bölük
fac4c68236 Removed vector allocating ::recurse, replacing with ::enum_paths. 2020-08-22 03:47:49 +02:00
Can Bölük
086233747c Revert a whoopsie. 2020-08-21 07:53:57 +02:00
Can Bölük
7d106c56e8 Making use of function_view. 2020-08-21 00:55:43 +02:00
Can Bölük
fe1b7fc7e1 Implemented auto-scope ref and exception-less stack cleanup. 2020-08-01 21:21:16 +02:00
Can Bölük
ff009c96a7 Worker threads preserve symcache per block. 2020-08-01 21:19:56 +02:00
Can Bölük
1ed9aa410d Fixed a race condition caused by off by one restriction. 2020-07-29 20:33:29 +02:00
Can Bölük
ccd1969997 Added CustomHashable concept overload for std::hash. 2020-07-29 06:47:21 +02:00
Can Bölük
8a79ca03ba Fixed everything else to work with the changes. 2020-07-29 02:36:10 +02:00
Can Bölük
6b647f8db6 Fixing minor redundancies. 2020-07-28 21:44:53 +02:00
Can Bölük
d82966849c Fixed an issue where compiler would generate atomic<void>. 2020-07-28 21:42:06 +02:00
Can Bölük
14a55c4a2c transform_parallel now accepts functors with any atomic type / void. 2020-07-27 23:19:09 +02:00
Can Bölük
091973723a Removing redundant code. 2020-07-27 20:28:05 +02:00
Can Bölük
cc8ca77f7d Minor configuration changes. 2020-07-27 07:27:23 +02:00
Can Bölük
0ac7649f15 Minor fixes, adjusted pool config. 2020-07-27 01:04:23 +02:00
Can Bölük
2938d31782 Fixed sym-rewrite not purging sym cache after destroying a basic block. 2020-07-25 15:29:04 +02:00
Can Bölük
34d857c1bf Removing unnecessary (post self-sig change) cache purging. 2020-07-25 12:29:11 +02:00
Can Bölük
5b4767acf1 vtil::zip and vtil::numeric_range can now be constructed constexpr. 2020-07-24 08:28:48 +02:00
Can Bölük
ace235b13c symbolic_vm now uses symbolic::context. 2020-07-24 07:10:46 +02:00