Commit Graph

81 Commits

Author SHA1 Message Date
Léo Lam 710c91eeff
tools: Make register pair tracking more robust by using insn.regs_access() 2021-06-28 18:51:08 +02:00
Léo Lam c249c93be1
tools: Fix check script not handling ldrb, ldrsb, etc. correctly 2021-06-25 00:32:29 +02:00
Léo Lam 1b9f698134
tools: Fix strb and other str variants not being handled 2021-06-24 22:47:19 +02:00
Léo Lam b3acc6a393
Add tool to translate IDA types to real C++ types
Currently this only covers agl Parameter classes, but more type names
may be added to the mapping in the future.
2021-06-20 14:25:46 +02:00
Léo Lam 38e5e47b07
tools: Ignore excluded lib functions for rename script 2021-06-15 10:52:45 +02:00
Léo Lam f4740f07e7
Exclude libcurl and NintendoSDK-NEX
This project is not going to decompile libcurl and NEX. It's just not
the main focus of the project and it's unlikely to yield any kind of
interesting information.

PosTrackerUploader and possibly the network save transfer stuff
do use NEX but those are secondary, possibly debug-only features.
Furthermore decompiling those two systems does not require actually
implementing the entirely of libcurl+NEX (~1MB); we just have to
write "API stubs" (headers) for the few parts of NEX that are used
by BotW code.
2021-06-15 01:49:54 +02:00
Léo Lam 6ba20da9ee
Add a script to suppress gdt*Flags.cpp rebuilds for faster builds 2021-04-02 16:08:05 +02:00
Léo Lam a303d6e1b7
tools: Show line number when CSV parsing fails 2021-02-07 15:42:56 +01:00
Léo Lam eaa0f651ef
tools/diff: Rebuild on library changes as well 2021-01-31 22:30:38 +01:00
Léo Lam 5c6cc59214
tools: Update asm-differ and add support for -mw (make, watch) 2021-01-25 14:41:33 +01:00
Léo Lam 5410a56d20
tools: Sort decomp symbols by address
Makes it less tedious to add several decompiled functions to the
function list
2021-01-22 14:20:01 +01:00
Léo Lam 3b996a212c
Track AI class decompilation macro progress 2021-01-21 12:52:56 +01:00
Léo Lam d5a9f2bc82
identify_matching_functions_by_call: Add support for matching one fn 2021-01-01 18:58:39 +01:00
Léo Lam 3dd4331fc9
Add more AI matches 2020-12-31 15:09:42 +01:00
Léo Lam 028ad38b41
Add matching AI functions to CSV 2020-12-31 14:35:21 +01:00
Léo Lam 3869e440e7
Generate AIs 2020-12-31 14:16:09 +01:00
Léo Lam a226027828
Add tool to rename AI virtual functions 2020-12-31 12:46:44 +01:00
Léo Lam 834f44e556
tools: Optimize symbol parsing 2020-12-29 15:04:45 +01:00
Léo Lam 8b41b83228
Add tool to identify matching sead RTTI functions 2020-12-29 14:18:25 +01:00
Léo Lam 81b1ec96bb
Add more missed matches 2020-12-29 01:38:07 +01:00
Léo Lam 27196eb945
Add more missed matches 2020-12-29 01:22:53 +01:00
Léo Lam 56e1c0cfd2
Action: Fix incorrect handling of inherited virtual functions 2020-12-28 23:49:15 +01:00
Léo Lam fcc062ec30
tools: Add unknown call hook to FunctionChecker 2020-12-28 20:51:34 +01:00
Léo Lam 1b89dc7024
tools: Fix base action classes being ignored by the function matcher 2020-12-28 17:20:48 +01:00
Léo Lam 19e0f9a81c
Add more matching functions to the list 2020-12-28 10:54:51 +01:00
Léo Lam 02c583ca4d
Generate actions 2020-12-28 01:26:51 +01:00
Léo Lam d9f6166ed0
tools: Deduplicate AI tool code 2020-12-27 00:59:37 +01:00
Léo Lam 60b457c522
Add script to rename Action virtual functions
Useful to keep function names synchronised between decomp, IDA and the
function CSV
2020-12-26 02:41:01 +01:00
Léo Lam b1d59ba594
tools: Add script to show non-trivial AI class hierarchies 2020-12-25 18:39:03 +01:00
Léo Lam eba2713653
Generate query factories as well 2020-12-23 14:22:24 +01:00
Léo Lam f98d3ee758
Generate stubs for queries 2020-12-22 01:50:49 +01:00
Léo Lam cd6bf1e821
tools/rename_functions_in_ida: Drop support for IDA <7.4 2020-12-18 19:24:35 +01:00
Léo Lam 72e8d72ad2
tools: Remove AI class progress counter
It won't be accurate because the factory functions can and will be
automatically generated.
2020-12-10 00:20:30 +01:00
Léo Lam 3da63099f6
tools: Update asm-differ 2020-12-02 23:02:15 +01:00
Léo Lam a4ea87cb88
tools/util: Ignore unknown data symbols 2020-11-22 20:39:24 +01:00
Léo Lam 601ecd92a1
tools/progress: Add option to print CSV line 2020-11-22 11:54:00 +01:00
Léo Lam 68c9ffeede
tools: Add support for data symbol checking for GOT entries 2020-11-11 17:31:52 +01:00
Léo Lam b53135a885
tools/check: Improve error reporting 2020-11-11 17:00:25 +01:00
Léo Lam 96a8bb104e
tools: Read entire ELF ahead of time to reduce seek/read overhead 2020-11-11 13:54:01 +01:00
Léo Lam 27afd0aa6a
ksys/gdt: Implement Manager increase functions 2020-11-11 12:35:59 +01:00
Léo Lam fc4536b0d3
ksys/gdt: Add reset wrappers to Manager and CommonFlags 2020-11-11 02:04:17 +01:00
Léo Lam b4178ad2b9
tools/check: Only print mismatch details if they exist 2020-11-11 00:58:58 +01:00
Léo Lam d2eab6d2a4
tools: Add IDA script to get rid of function tails 2020-11-11 00:30:24 +01:00
Léo Lam 93b1b17979
Fix matching errors 2020-11-10 21:52:48 +01:00
Léo Lam 7e7a76f926
tools: Print mismatch cause
Makes it easier to identify what's wrong.
2020-11-10 21:35:58 +01:00
Léo Lam dc9b346d7e
tools: Add function call checking 2020-11-10 21:25:45 +01:00
Léo Lam 0a16b78855
data: Add functions that were missed because of IDA's function tail system 2020-11-10 18:48:52 +01:00
Léo Lam 42c9511b11
tools: Update asm-differ 2020-11-10 15:49:55 +01:00
Léo Lam ce5ff17666
tools: Add script to automatically identify matches
Given a list L of functions to identify and a small list of
candidates C, this tool will attempt to automatically identify matches
by checking each function in L against each function in C.

Very slow, but this should work well enough for small lists.
2020-11-09 23:46:57 +01:00
Léo Lam 844db4220c
tools: Do not use a global capstone disassembler instance
Instead, use one instance per function checker.
2020-11-09 21:23:23 +01:00