1.查壳
用FFI看,外壳是PEBundle,内壳是UPX变形壳。
2.脱壳
载入OD,用ESP定律
到达44FB10,脱掉第一层
用SOD插入sqlite3.dll
删除断点,继续ESP定律,得知真正的OEP在40F3C7
3.修复IAT
跟踪IAT,到41004C处,得知41004C和410074那2处被模拟了
进入508238,得知那个在模拟
DS:[005078E1]=7C80B56F (kernel32.GetModuleFileNameA)
把41004C那里修改为7C80B56F
进入50814A,得知那个在模拟
DS:[005078E5]=7C80B741 (kernel32.GetModuleHandleA)
把410074那里修改为7C80B741
41043C到410448那里是几个静态编译的sqlite的API,修复为
0041043C 216A77D6 sqlite3.sqlite3_get_table
00410440 21687A7C sqlite3.sqlite3_free_table
00410444 216B6F06 sqlite3.sqlite3_open16
00410448 216A7C9D sqlite3.sqlite3_close
备注:几个sqlite3的API本机地址可以OD的插件查询
DUMP,FIX,完成!
破解过程省略。。。。。。