其实是可以静态分析的,主要是自动识别的时候将malloc函数当成trunk了。手动将malloc、sleep等分析成函数(记得去掉noreturn属性,不要自动识别成的代码片断),这样F5就正常了。
.text:000028C4
.text:000028C4 ; int __fastcall malloc_(int)
.text:000028C4 malloc_ ; CODE XREF: Java_by_Ericky_crackme01_JNI_EatRice+46p
.text:000028C4 ; GetStringUTFChars:loc_113Cp
.text:000028C4 BX PC
.text:000028C4 ; ---------------------------------------------------------------------------
.text:000028C6 ALIGN 4
.text:000028C6 ; End of function malloc_
.text:000028C6
.text:000028C8 CODE32
.text:000028C8
.text:000028C8 ; =============== S U B R O U T I N E =======================================
.text:000028C8
.text:000028C8
.text:000028C8 __32malloc_ ; CODE XREF: malloc_j
.text:000028C8 LDR R12, =(malloc - 0x28D4)
.text:000028CC ADD PC, R12, PC ; malloc
.text:000028CC ; End of function __32malloc_
.text:000028CC