Skip to content

IDA Analysis

IDA Analysis #2

Workflow file for this run

name: IDA Analysis
on:
workflow_dispatch:
inputs:
target_file:
description: "Name of the file"
required: true
type: string
file_link:
description: "GDrive link of the file"
required: true
type: string
generate_c:
description: "Generate C pseudocode"
required: false
type: boolean
default: false
installer_link:
description: "GDrive link of the installer"
required: false
type: string
default: 1zXAhAcXvWe6TRagdjMKwI4_HF_bgH-Lo
jobs:
ida_analysis:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Install Dependencies
run: |
sudo apt update
sudo apt -y install python3 python3-pip pipx
pipx install gdown
pipx ensurepath
source ~/.profile
- name: Download IDA Pro Installer
run: |
gdown -O idapro_90_x64linux.run ${{ github.event.inputs.installer_link }}
- name: Install IDA Pro
run: |
chmod +x idapro_90_x64linux.run
./idapro_90_x64linux.run --mode unattended
- name: Patch IDA Pro
run: |
cp $HOME/idapro-9.0/libida.so .
cp $HOME/idapro-9.0/libida64.so .
python3 ida90_beta.py
mv libida.so.patched $HOME/idapro-9.0/libida.so
mv libida64.so.patched $HOME/idapro-9.0/libida64.so
mv ida.hexlic $HOME/.idapro/
rm libida.so libida64.so
- name: Setup IDA Pro
run: |
pip install $HOME/idapro-9.0/idalib/python
python3 $HOME/idapro-9.0/idalib/python/py-activate-idalib.py
python3 ida90_eula.py
- name: Download File for Analysis
run: |
gdown --fuzzy -O ${{ github.event.inputs.target_file }} ${{ github.event.inputs.file_link }}
- name: Run IDA Pro Headless Analysis
run: |
$HOME/idapro-9.0/idat64 -P+ -A -S"analyse.idc" ${{ github.event.inputs.target_file }}
# - name: Generate C Pseudocode
# if: ${{ github.event.inputs.generate_c }}
# run: |
# python3 ida90_pseudocode.py -f ${{ github.event.inputs.target_file }}.i64
- name: Upload Analysed Database
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.inputs.target_file }}-Database
path: ${{ github.event.inputs.target_file }}.i64
compression-level: 9
# - name: Upload Pseudocode
# uses: actions/upload-artifact@v4
# if: ${{ github.event.inputs.generate_c }}
# with:
# name: ${{ github.event.inputs.target_file }}-Pseudocode
# path: ${{ github.event.inputs.target_file }}.c
# compression-level: 9