Commits on Source (81)
-
Jason Hiser authored
-
Jason Hiser authored
Debugging code allows for one to binary-search the unpins. But a .dynsym, .got, etc. entry can be duplicated in it's own section or other sections. Unpinning has to handle unpinning an instruction and deal with updating all tables properly. Bug was found in handling of the unpin for .dynsym in this regard. This patch fixes that bug.
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
May need to revisit this because pin-alignment needs to be a function of the dollop manager, instead of the hacky method it is now.
-
Jason Hiser authored
This reverts commit ed60f36d.
-
Jason Hiser authored
-
Jason Hiser authored
New feature allows sizer to specify the alignment of unpinned instructions (i.e., instructions with a pin, but no pin address). Feature applies only to instructions that are _not_ the fallthrough of other instructions (e.g., function pointers) Also, code cleanups (removing commented-out code, spacing, tabbing)
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
Move-globals speedup See merge request !14
-
Jason Hiser authored
-
Jason Hiser authored
Previously, dollop coalescing would allow unpinned IBTAs disobey the IBTA alignment restrictions. To deal with alignment, the dollop coalescing was disallowed if an unpin to attempt to coalesce is in a different function than the code that the unpin would would be coalesced to.
-
Jason Hiser authored
Deal with fallthroughs to unpinned IBTAs See merge request !15
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
Deal with prefixes on jmp/jcc/call instructions that might change the insn length, fix syntax for arm
-
Jason Hiser authored
Deal with prefixes on jmp/jcc/call instructions that might change the insn length, fix syntax for x86
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
1) FII was finding the wrong cmp for switch tables. Removed the blind cmp and forced the cmp to use the proper register or not find a cmp. Also changed the limit for a table size when no cmp is found from 2^32 to 255. 2) Fixed an issue with zipr dollop layout where the size to layout 1 instruction + a trampoline was bigger than laying out two+ full dollops (because both dollops were short), but the dollops are disallowed from being coalesced. The worst-size detector needed to account for non-coalescable dollops.
-
Jason Hiser authored
Issue was related to intermediate set of the compare register. Leveraged backup_until's stopif argument to stop backup until sooner. Note: as indicated in code comment, single register/register move is common and could be used to improve accuracy.
-
Jason Hiser authored
-
Jason Hiser authored
Update find-in-function method to be more vague about the leas it finds when precise-switch-statement finding is impossible
-
Jason Hiser authored
* Update 68-sled code to be keystone friendly * Corrected spelling of getInstruction. removed extraneous assert. * Disable should-pin-immediately because it interfers with sleds. * Remove assert from fix-calls about odd prefixing, just dont fix the call. More of an issue with FII doing disassembly * Update switch->code discovery path to only happen if switch table is in text segment * fixed FII to do what the last commit said -- only disassembly when TABLE is in text. also patched zipr to handle xbegin gracefully. * Disable verbose setting * Create lots of dbs instead of just a few
-
Jason Hiser authored
Work through issues discovered in GT benchmark suite. See merge request !16
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
Was previously asserting isRegister() or isMemory(), but could also be isConstant().
-
Jason Hiser authored
This was needed because sorting by address ended up being _very_ slow to find free spaces in large programs. E.g., if 100,000 1-byte free ranges were created (and, likely unusable), placing every instruction after this point will need to search thouse 100,000 free ranges.
-
Jason Hiser authored
Update free-range management to keep free ranges sorted by size and address. See merge request !17
-
Jason Hiser authored
-
Jason Hiser authored
Improve symbol parsing speed for rida. See merge request !18
-
Jason Hiser authored
Found bug resulting from hidden static variable in ctime() function.
-
Jason Hiser authored
Only gap-fill for original-style scoops (that is, pure-data). R/X scoops are added for switch tables, but may overlap because the switch detector may make multiple guesses at ground truth. The gap filling algorithm wasn't expecting this, so skip these scoops as they shouldn't result in gap-filling anyhow.
-
Jason Hiser authored
Temp fix: to deal with FII creating overlapping switch table scoops resulting from imprecision in ICX-created programs. Todo: Update FII to not create overlapping scoops.
-
Jason Hiser authored
-
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
Unpin type4 See merge request !19
-
Andreas Wendler authored
-
Andreas Wendler authored
The main problem is the use of an addition instead of a multiplication for scale values. In addition, to make sure the result can be used to create new instructions from assembly, all generated numbers must be in hex.
-
Andreas Wendler authored
-
Jason Hiser authored
Fix some minor bugs See merge request !21
-
Jason Hiser authored
Also added tests.
-
Jason Hiser authored
Resolve "Rida crashes if .plt section is empty" Closes #15 See merge request !20
-
-
Jason Hiser authored
-
Jason Hiser authored
Fix naming See merge request !23
-
Jason Hiser authored
-
Jason Hiser authored
Resolve "Generated binary crashes for varargs compiled with icc" Closes #18 See merge request !24
-
Jason Hiser authored
-
Jason Hiser authored
Remove ubuntu16 CI, change docker/deployment to ubuntu 22. See merge request !26
-
Jason Hiser authored
-
Jason Hiser authored
Fixed calls break exception handling, and largely aren't needed anymore. We were still "fixing" calls when it had no fallthrough instruction, assuming the call is used for something else. Except that sometimes a "call _cxa_throw" ends a function/section and legitimately has no fallthrough. And this breaks the exception handling. Testing this fix against the Zipr test suite to verify that it is OK on a large suite of programs.
-
Jason Hiser authored
Update to fix calls for exception handling. See merge request !27
-
Jason Hiser authored
-
Jason Hiser authored
Address issue with one table being unpinned, and another table not being unpinned.
-
Jason Hiser authored
Fix unpinner assumption that target only in one table. See merge request !28
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
submod See merge request !29
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
Fix issue in move-globals related to .tdata and .tbss See merge request !30
-
-
Jason Hiser authored
Debug palignr2 Closes #20 See merge request !31
-
Jason Hiser authored
-
Jason Hiser authored
-
-
Jason Hiser authored
-
Jason Hiser authored
-
Jason Hiser authored
Found un-init memory reads in instruction disassembly See merge request !32
Showing
- .gitlab-ci.yml 27 additions, 34 deletions.gitlab-ci.yml
- .vscode/settings.json 7 additions, 0 deletions.vscode/settings.json
- README.md 21 additions, 0 deletionsREADME.md
- SMPStaticAnalyzer 1 addition, 1 deletionSMPStaticAnalyzer
- builtin_xforms/move_globals/mg.cpp 60 additions, 73 deletionsbuiltin_xforms/move_globals/mg.cpp
- builtin_xforms/move_globals/mg.hpp 1 addition, 0 deletionsbuiltin_xforms/move_globals/mg.hpp
- cfar_postgres_setup.sh 3 additions, 2 deletionscfar_postgres_setup.sh
- cicd_testing/builtin-xforms.sh 6 additions, 0 deletionscicd_testing/builtin-xforms.sh
- cicd_testing/docker-zipr-bin/Dockerfile 4 additions, 2 deletionscicd_testing/docker-zipr-bin/Dockerfile
- cicd_testing/docker-zipr-bin/run_pszr.sh 1 addition, 1 deletioncicd_testing/docker-zipr-bin/run_pszr.sh
- examples/cpp-examples/derived2_throw.cpp 2 additions, 2 deletionsexamples/cpp-examples/derived2_throw.cpp
- examples/cpp-examples/derived3_throw.cpp 5 additions, 5 deletionsexamples/cpp-examples/derived3_throw.cpp
- examples/cpp-examples/derived4_throw.cpp 1 addition, 1 deletionexamples/cpp-examples/derived4_throw.cpp
- examples/cpp-examples/derived_throw.cpp 2 additions, 2 deletionsexamples/cpp-examples/derived_throw.cpp
- examples/cpp-examples/simple_throw.cpp 1 addition, 1 deletionexamples/cpp-examples/simple_throw.cpp
- examples/cpp-examples/testit.sh 34 additions, 27 deletionsexamples/cpp-examples/testit.sh
- examples/cpp-examples/throw.cpp 2 additions, 2 deletionsexamples/cpp-examples/throw.cpp
- irdb-libs/SConscript 21 additions, 17 deletionsirdb-libs/SConscript
- irdb-libs/dump_insns/dump_insns.cpp 1 addition, 1 deletionirdb-libs/dump_insns/dump_insns.cpp
- irdb-libs/ir_builders/back_search.hpp 3 additions, 3 deletionsirdb-libs/ir_builders/back_search.hpp
.vscode/settings.json
0 → 100644