Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос ИИ в IDA Pro

Read Only
Read Only
Статус
Онлайн
Регистрация
30 Окт 2025
Сообщения
6
Реакции
1
Как думаете, мусор или нет, может использовали уже, просто я вот для примера использовал codex и mcp сервер от mrexodia (ida-pro-mcp) для реверса лоадера hrisitosense чтобы попробывать чисто достать дллку, в итоге получилось, codex написал мини повершелл код для дампа -


code:
Expand Collapse Copy
$exe = "ddd.exe"
$base = 0x400000
$keySpecs = @(
    @{va=0x48B640; size=0x63;   xv=0xA5; off=0},
    @{va=0x48B5C0; size=0x7E;   xv=0x12; off=163},
    @{va=0x48B580; size=0x40;   xv=0xF9; off=520},
    @{va=0x48B360; size=0x9E;   xv=0x5A; off=584},
    @{va=0x48B400; size=0xE7;   xv=0xBA; off=289},
    @{va=0x48B4E8; size=0x92;   xv=0x39; off=742},
    @{va=0x48B6A8; size=0x88;   xv=0x24; off=888},
    @{va=0x48B730; size=0x40;   xv=0x1B; off=99}
)
$payloads = @(
    @{va=0x176FB20; size=0xB600;   out="payload1.dll"},
    @{va=0x58D720; size=0xD37200; out="payload2.dll"},
    @{va=0x12C4920; size=0x4AB200; out="payload3.dll"}
)

[byte[]]$bytes = [System.IO.File]::ReadAllBytes($exe)

function Get-Sections {
    param([byte[]]$data)
    $e_lfanew = [BitConverter]::ToUInt32($data, 0x3C)
    $numSec   = [BitConverter]::ToUInt16($data, $e_lfanew + 6)
    $optSize  = [BitConverter]::ToUInt16($data, $e_lfanew + 20)
    $secBase  = $e_lfanew + 24 + $optSize
    $secs = @()
    for ($i=0; $i -lt $numSec; $i++) {
        $off = $secBase + 40*$i
        $virtSize = [BitConverter]::ToUInt32($data, $off+8)
        $virtAddr = [BitConverter]::ToUInt32($data, $off+12)
        $rawSize  = [BitConverter]::ToUInt32($data, $off+16)
        $rawPtr   = [BitConverter]::ToUInt32($data, $off+20)
        $secs += @{va=$virtAddr; vs=$virtSize; rp=$rawPtr; rs=$rawSize}
    }
    return $secs
}

function Va-ToRaw {
    param([UInt32]$va, [UInt32]$size, $sections)
    $rva = $va - $base
    foreach ($s in $sections) {
        if ($rva -ge $s.va -and $rva -lt ($s.va + $s.vs)) {
            $off = $s.rp + ($rva - $s.va)
            return [pscustomobject]@{Off=[int]$off; Size=[int]$size}
        }
    }
    throw "RVA not in sections: $(('{0:X}' -f $va))"
}

$sections = Get-Sections -data $bytes

$key = New-Object byte[] 1024
foreach ($k in $keySpecs) {
    $map = Va-ToRaw $k.va $k.size $sections
    $off = $map.Off; $sz = $map.Size
    for ($i=0; $i -lt $sz; $i++) {
        $b = [int]$bytes[$off + $i]
        $key[$k.off + $i] = [byte]($b -bxor [int]$k.xv)
    }
}

foreach ($p in $payloads) {
    $map = Va-ToRaw $p.va $p.size $sections
    $off = $map.Off; $sz = $map.Size
    $out = New-Object byte[] $sz
    for ($i=0; $i -lt $sz; $i++) {
        $b = [int]$bytes[$off + $i]
        $out[$i] = [byte]($b -bxor [int]$key[$i % 1024])
    }
    [IO.File]::WriteAllBytes($p.out, $out)
    Write-Host "$($p.out) dumped"
}
 
Как думаете, мусор или нет, может использовали уже, просто я вот для примера использовал codex и mcp сервер от mrexodia (ida-pro-mcp) для реверса лоадера hrisitosense чтобы попробывать чисто достать дллку, в итоге получилось, codex написал мини повершелл код для дампа -


code:
Expand Collapse Copy
$exe = "ddd.exe"
$base = 0x400000
$keySpecs = @(
    @{va=0x48B640; size=0x63;   xv=0xA5; off=0},
    @{va=0x48B5C0; size=0x7E;   xv=0x12; off=163},
    @{va=0x48B580; size=0x40;   xv=0xF9; off=520},
    @{va=0x48B360; size=0x9E;   xv=0x5A; off=584},
    @{va=0x48B400; size=0xE7;   xv=0xBA; off=289},
    @{va=0x48B4E8; size=0x92;   xv=0x39; off=742},
    @{va=0x48B6A8; size=0x88;   xv=0x24; off=888},
    @{va=0x48B730; size=0x40;   xv=0x1B; off=99}
)
$payloads = @(
    @{va=0x176FB20; size=0xB600;   out="payload1.dll"},
    @{va=0x58D720; size=0xD37200; out="payload2.dll"},
    @{va=0x12C4920; size=0x4AB200; out="payload3.dll"}
)

[byte[]]$bytes = [System.IO.File]::ReadAllBytes($exe)

function Get-Sections {
    param([byte[]]$data)
    $e_lfanew = [BitConverter]::ToUInt32($data, 0x3C)
    $numSec   = [BitConverter]::ToUInt16($data, $e_lfanew + 6)
    $optSize  = [BitConverter]::ToUInt16($data, $e_lfanew + 20)
    $secBase  = $e_lfanew + 24 + $optSize
    $secs = @()
    for ($i=0; $i -lt $numSec; $i++) {
        $off = $secBase + 40*$i
        $virtSize = [BitConverter]::ToUInt32($data, $off+8)
        $virtAddr = [BitConverter]::ToUInt32($data, $off+12)
        $rawSize  = [BitConverter]::ToUInt32($data, $off+16)
        $rawPtr   = [BitConverter]::ToUInt32($data, $off+20)
        $secs += @{va=$virtAddr; vs=$virtSize; rp=$rawPtr; rs=$rawSize}
    }
    return $secs
}

function Va-ToRaw {
    param([UInt32]$va, [UInt32]$size, $sections)
    $rva = $va - $base
    foreach ($s in $sections) {
        if ($rva -ge $s.va -and $rva -lt ($s.va + $s.vs)) {
            $off = $s.rp + ($rva - $s.va)
            return [pscustomobject]@{Off=[int]$off; Size=[int]$size}
        }
    }
    throw "RVA not in sections: $(('{0:X}' -f $va))"
}

$sections = Get-Sections -data $bytes

$key = New-Object byte[] 1024
foreach ($k in $keySpecs) {
    $map = Va-ToRaw $k.va $k.size $sections
    $off = $map.Off; $sz = $map.Size
    for ($i=0; $i -lt $sz; $i++) {
        $b = [int]$bytes[$off + $i]
        $key[$k.off + $i] = [byte]($b -bxor [int]$k.xv)
    }
}

foreach ($p in $payloads) {
    $map = Va-ToRaw $p.va $p.size $sections
    $off = $map.Off; $sz = $map.Size
    $out = New-Object byte[] $sz
    for ($i=0; $i -lt $sz; $i++) {
        $b = [int]$bytes[$off + $i]
        $out[$i] = [byte]($b -bxor [int]$key[$i % 1024])
    }
    [IO.File]::WriteAllBytes($p.out, $out)
    Write-Host "$($p.out) dumped"
}
Давно думал о такой штуке,почему нету дизасемблеров с ИИ для вайб реверсеров, идея ахуенная,главное правильно реализовать.
 
АХХАХАХАХА бля не смешите меня, нейронки не могут отличить __thiscall от __fastcall от __vectorcall по прологу функции, куда там реверсить например какой то даже инлайн xor будет для них жопной болью :roflanEbalo:
я уже молчу о виртуализаци...
 
Давно думал о такой штуке,почему нету дизасемблеров с ИИ для вайб реверсеров, идея ахуенная,главное правильно реализовать.
нет, идея хуёвая, так как нейронки зачастую не могут разобрать какие функции с чем взаимодействуют, а реверсить тот же лоадер с дллкой полному новичку будет адской болью, так что все дружненько открываем руководство по гидре/ида и сидим учим, вообще уже вайбкодеры ахуели


скоро начнете бунтовать "А ПАЧЕМУ ПО 1 ПРОМПТУ НЕ МОГУ ВЕСЬ ПРОЕКТ СРАЗУ СОЗДАТЬ НА 342734234827823 СТРОК?"
 
нет, идея хуёвая, так как нейронки зачастую не могут разобрать какие функции с чем взаимодействуют, а реверсить тот же лоадер с дллкой полному новичку будет адской болью, так что все дружненько открываем руководство по гидре/ида и сидим учим, вообще уже вайбкодеры ахуели


скоро начнете бунтовать "А ПАЧЕМУ ПО 1 ПРОМПТУ НЕ МОГУ ВЕСЬ ПРОЕКТ СРАЗУ СОЗДАТЬ НА 342734234827823 СТРОК?"
так вся их затея ломается условным затеранием хедера, рантайм патчем директ каллов нативных функций и каким то сискал диспатчиром :roflanEbalo:
или например не ребазнутый дамп:roflanEbalo:
 
нет, идея хуёвая, так как нейронки зачастую не могут разобрать какие функции с чем взаимодействуют, а реверсить тот же лоадер с дллкой полному новичку будет адской болью, так что все дружненько открываем руководство по гидре/ида и сидим учим, вообще уже вайбкодеры ахуели


скоро начнете бунтовать "А ПАЧЕМУ ПО 1 ПРОМПТУ НЕ МОГУ ВЕСЬ ПРОЕКТ СРАЗУ СОЗДАТЬ НА 342734234827823 СТРОК?"
1765432242713.png
 
наверное данную тему открывал какой нибудь майнкрафтер, только они способны пастить и пользоваться нейронкой одновременно, только по их мнению у них софт на вес золота

больше всего меня прикалывает то, что они свой софт собирают как какого нибудь робота, только все части они берут из других софтов, слитых сурсов, и по кусочкам получается однотонный говнопродукт без какой либо защиты, и тот самый школьник который сидел пастил ее целый месяц, побежит продавать ее за ебанные 400 рублей
 
наверное данную тему открывал какой нибудь майнкрафтер, только они способны пастить и пользоваться нейронкой одновременно, только по их мнению у них софт на вес золота

больше всего меня прикалывает то, что они свой софт собирают как какого нибудь робота, только все части они берут из других софтов, слитых сурсов, и по кусочкам получается однотонный говнопродукт без какой либо защиты, и тот самый школьник который сидел пастил ее целый месяц, побежит продавать ее за ебанные 400 рублей
Я особо щас в кубы не играю даже... Разве что своим сервером занимаюсь,а про продажу паст на майнкрафт даже речи и идти не может,мне это не интресно особо
 
Назад
Сверху Снизу