R0 CREW

IDA Pro - SP-analysis failed

Всем привет. Я тут ковыряю один семпл, в во время анализа наткнулся на такой кусок кода:

.text:0040158B E8 1D 00 00 00                       call    sub_4015AD
.text:0040158B                      ; ---------------------------------------------------------------------------
.text:00401590 47 65 74 43 6F 6D 6D+aGetcommandlineakernel32 db 'GetCommandLineA',0,'Kernel32.dll',0
.text:004015AD
.text:004015AD                      ; =============== S U B R O U T I N E =======================================
.text:004015AD
.text:004015AD
.text:004015AD                      sub_4015AD      proc near               ; CODE XREF: .text:0040158Bp
.text:004015AD 58                                   pop     eax
.text:004015AE 50                                   push    eax
.text:004015AF 83 C0 10                             add     eax, 10h
.text:004015B2 50                                   push    eax             ; lpModuleName
.text:004015B3 FF 15 1C 40 40 00                    call    ds:GetModuleHandleA
.text:004015B9 50                                   push    eax
.text:004015BA E8 6F FE FF FF                       call    GetAddrOfFunction
.text:004015BF 89 45 F8                             mov     [ebp-8], eax
.text:004015C2 83 C4 08                             add     esp, 8
.text:004015C5
.text:004015C5                      loc_4015C5:                             ; CODE XREF: .text:00401558j
.text:004015C5 BF 74 50 40 00                       mov     edi, offset unk_405074
.text:004015CA 68 04 01 00 00                       push    104h
.text:004015CF 57                                   push    edi
.text:004015D0 6A 00                                push    0
.text:004015D2 FF 55 FC                             call    dword ptr [ebp-4] ; GetModuleFileNameA
.text:004015D2                      sub_4015AD      endp ; sp-analysis failed

тут у нас кусок кода находящийся внутри функции, в коде хранится строка, а также другая функция ида ее распознает но потом матерится sp-analysis failed.

Подскажите как это исправить?

Как по мне то у тебя непраильно распознан конец ф-ии.

Как его задать если функция внутри функции, да еще и ничего не возвращает, вычищая стек перед следующим вызовом?

Функция

Вставка строки

Продолжение функции

Касперский сказал бы писали пацаны из 90-х.

Наводишься на начало нижней функции, жмешь U, потом C. Потом наводишься на верхнюю функцию жмешь ALT+P и устанавливаешь новый конец, он еще ниже конца этой функи sub_4015AD.

Да это всё анализатор иды, поудаляй неправильно определеные ф-ии и задай сам границы всей функции.