Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/virb3/swift-ida
IDA plugin to aid with Swift reverse engineering
https://github.com/virb3/swift-ida
go ida ida-pro plugin reverse-engineering rust swift
Last synced: 15 days ago
JSON representation
IDA plugin to aid with Swift reverse engineering
- Host: GitHub
- URL: https://github.com/virb3/swift-ida
- Owner: ViRb3
- Created: 2024-10-23T22:29:27.000Z (20 days ago)
- Default Branch: master
- Last Pushed: 2024-10-26T20:47:07.000Z (17 days ago)
- Last Synced: 2024-10-26T22:40:49.604Z (17 days ago)
- Topics: go, ida, ida-pro, plugin, reverse-engineering, rust, swift
- Language: Python
- Homepage:
- Size: 183 KB
- Stars: 19
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SwiftIDA
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.
## Usage
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.
![menu](docs/menu.png)
---
#### Before:
![before2](docs/before2.png)
![before1](docs/before1.png)
![before3](docs/before3.png)
---
#### After:
![after2](docs/after2.png)
![after1](docs/after1.png)
![after3](docs/after3.png)
## References
- 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