summaryrefslogtreecommitdiff
path: root/lang
AgeCommit message (Collapse)Author
2025-05-29Light unused variable cleanup in Psuedo C/Obj-C Pluginkat
2025-05-29[PseudoObjC] Handle named type references to types that don't existMark Rowe
2025-05-29Detect calls that the Objective-C workflow has rewritten directly to an ↵Mark Rowe
implementation These are detected by their function names having the characteristic `-[ClassName methodName:]` format. Calls to functions with this naming pattern that accept a selector as a second argument are assumed to be `objc_msgSend` calls that the Objective-C workflow rewrote. These calls are formatted identically to other `objc_msgSend` calls with the exception that the selector tokens reference the address of the call target rather than the selector string, so double-clicking on them takes you to the fixed destination of the rewritten call.
2025-05-29Implement a Pseudo Objective-C language representationMark Rowe
This is implemented in the Pseudo C plug-in as it shares 99% of the logic. The Objective-C support is implemented in a subclass of `PseudoCFunction`. The handling of instruction types that the Objective-C representation needs to customize is extracted into virtual functions that the Objective-C subclass overrides. This currently supports: * Rewriting `objc_msgSend` / `objc_msgSendSuper2` with constant selectors to `[receiver message]` notation. * Rewriting calls to `objc_alloc` / `objc_alloc_init` / `objc_new` to the equivalent message send notation. * Rewriting `objc_retain` / `objc_release` and friends to the equivalent message send notation. * Displaying Objective-C class references as their class names rather than `_OBJC_CLASS_$_` symbol names. * Displaying Objective-C string literals as `@"..."`. This works best when used in conjunction with https://github.com/bdash/bn-objc-extras as the reference counting runtime calls add so much clutter.
2025-05-21Fix HLIL_LABEL renderingGlenn Smith
2025-05-13[CMake] Report compatibility with 3.15 to silence deprecation warningsGlenn Smith
2025-05-06Add cast to partial var accesses in pseudo C/RustBrandon Miller
Add casts to HLIL_STRUCT_FIELD expressions where the size of the source expression is greater than the size of access
2025-04-15Cast on indexed array assignments in pseudo C/RustBrandon Miller
2025-04-15Fix pseudo C/Rust absent lhs on comparisonBrandon Miller
This issue was caused because HLIL_SPLIT was not being handled on the left and right expressions of HLIL_IF instructions
2025-04-15Handle var assign with split src in pseudo C/RustBrandon Miller
Fixes issue with absent rhs when the instruction is HLIL_ASSIGN with a source expression of HLIL_SPLIT (var_60.q = r1:r0)
2025-04-11Fix pseudo C and rust type cast on HLIL_DEREFBrandon Miller
Should be using the instruction size of the HLIL_DEREF instruction, not the size of the HLIL_DEREF's source expression
2025-01-24Add line formatter API and a generic line formatter pluginRusty Wagner
2025-01-20Revert "Add line formatter API and a generic line formatter plugin"Rusty Wagner
This reverts commit 1699c71999d29d32aba5c9f8fea193a661a4b02b.
2025-01-17Add line formatter API and a generic line formatter pluginRusty Wagner
2024-12-27One case of needing the type printer in pseudo rustGlenn Smith
2024-12-27Make pseudo-c use the default type printerGlenn Smith
2024-12-27Clean up langreps' opcode print switchGlenn Smith
2024-11-04Fix opening/closing braces in PseudoRustPeter LaFosse
2024-10-28Eliminate AST parameter in high level rendering APIs, as it is already part ↵Rusty Wagner
of the HLIL instruction
2024-10-28hlr: expose ability to claim line addressesRyan Snyder
2024-10-24Make PseudoRust collapsablePeter LaFosse
2024-10-24Fix alignment of top level braces in PseudoCPeter LaFosse
2024-10-23Linear view function regions collapsePeter LaFosse
Update collapse code to support PseudoC
2024-10-21Allow multiple high level representations for display, add Pseudo Rust and a ↵Rusty Wagner
Pseudo Python example plugin