summaryrefslogtreecommitdiff
path: root/lang
AgeCommit message (Collapse)Author
2026-06-05Add abs, min, and max instructionsMark Rowe
2026-06-04Add bswap, popcnt, clz, ctz, cls, and rbit instructionsMark Rowe
2026-05-22Refactor calling conventions to support correct representation of structuresRusty Wagner
2025-12-24Fix crash when displaying variable with null type in pseudo-c and pseudo-rustJosh Ferrell
2025-12-20Fix many of the warnings that show up when compiling with GCC 15.2Mark Rowe
2025-11-10Fix crash for psuedo views (C/Obj-C/Rust) with unknown array access expr typeMason Reed
Fixes https://github.com/Vector35/binaryninja-api/issues/7603
2025-11-04Fix incorrect dereferencing in HLIL_STRUCT_FIELD rendering, and fix ignoring ↵Rusty Wagner
of signed hints in casts
2025-10-11Fix demo ifdefsJosh Ferrell
2025-08-13Fix round and single-operand uses of COMBINE in Pseudo-CGalen Williamson
2025-07-30[CMake] Specify CONFIGURE_DEPENDS for all file(GLOB ..)Mark Rowe
This ensures that CMake detects when files that match the glob are added or removed.
2025-07-16[PseudoC] Fix handling of struct field accesses at offset 0Mark Rowe
2025-07-16pseudo-c/rust: fix member index hint in field resolutionRyan Snyder
2025-07-15Expose analysis' system call type and name retrievalMason Reed
Previously we only really had a way to access the platform system call information, this was missing the system call information found in type libraries Fixes https://github.com/Vector35/binaryninja-api/issues/7089
2025-07-02Add outlining support for wmemcpy.Brian Potchik
2025-06-28Fix psuedo-c semicolon highlighting in ternary operationsAlexander Khosrowshahi
2025-06-28Add support for ternary simplification in Psuedo C and disable in graph viewAlexander Khosrowshahi
2025-06-25Update CXX_STANDARD to 20.Alexander Taylor
Also update minimum CMake version.
2025-06-25Remove implicit conversions from Confidence to underlying type, these can ↵Rusty Wagner
cause bugs and also issues with C++20
2025-06-18[ObjC] Improve how [super ...] calls are displayedMark Rowe
1. Skip displaying the declaration and initialization of the objc_super struct since that's an artifact of how objc_msgSendSuper is called. 2. Display the message receiver as `super` rather than `&super`
2025-06-18[ObjC] Prefer displaying id rather than objc_object*Mark Rowe
2025-06-18Have PseudoCFunction use its language's type printerMark Rowe
It was previously explicitly using the default. Retreiving it from the language will make it possible for PseudoObjCFunction to provide its own type printer.
2025-06-18[ObjC] Rewrite a couple of additional runtime callsMark Rowe
objc_opt_self -> [... self], objc_opt_isKindOfClass -> [... isKindOfClass:...], objc_opt_respondsToSelector -> [... respondsToSelector:...]
2025-06-18[ObjC] Display selectors as @selector(...)Mark Rowe
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