This is a simple plugin for IDA to aid with reverse engineering languages that have multiple return values and non-standard calling conventions. It does this by defining a set of shortcuts to easily change a function's calling convention and make it return a multi-value tuple. Tested on Swift and Golang, but should work on many more languages too.
Download swift-ida.py
and drop it in your IDA's plugins
folder. After that, simply right-click on a function definition and you will see the SwiftIDA
menu.
- https://github.com/swiftlang/swift/blob/main/docs/ABI/CallConvSummary.rst
- https://hex-rays.com/blog/igors-tip-of-the-week-107-multiple-return-values
- https://hex-rays.com/blog/igors-tip-of-the-week-51-custom-calling-conventions
- https://docs.hex-rays.com/user-guide/user-interface/menu-bar/edit/functions#set-function-item-type