jumpout 是一種針對 IDA 的反調試手段。當出現 jumpout 這個程式碼時,會阻止你看到後面的程式碼,如下圖所示。
jumpout 出現的原因是程式中的多餘匯編碼,如下圖所示。程式先將 loc_4010A8 賦值給 eax,然後將 eax 賦值給局部變數,再跳轉到局部變數。這些多餘的匯編指令會對 IDA 的識別造成反調試效果。
只需將多餘的匯編指令用 nop 指令替換,然後直接跳轉到對應的地址即可。
在 jump 匯編指令處,右鍵點擊,選擇「assemble」來進行編輯。
將局部變數直接修改為地址,然後按回車鍵。
接著,將多餘的匯編指令用 nop 指令替換掉。
最後按下 F5,你會發現後面的程式碼可以被識別了。