《逆向工程核心原理》学习笔记(五)
记录下第八章对于 vb 程序的逆向调试分析.
od 载入, 在 EP 代码中首先做的是调用 VB 引擎的主函数(ThunRTMain())
EP 地址为 00401238,401238 地址处的 PUSH 401E14 指令是用来把 RT--MainStruct 结构体的地址 (401E14) 压栈, 40123D 地址处的 call 指令是调用 401232 处的 jmp 指令, 该 jmp 指令会跳转到 VB 引擎的主函数 ThunRTMain(), 前面 401E14 的值作为 ThunRTMain()的参数.
这里 40123D 地址的 call 指令是调用 ThunRTMain()函数, 但是不是直接转到 MSVBVM60.DLL 的 ThunRTMain()函数, 而是通过中间 401232 地址的 jmp 指令跳转
这就是 VC++,VB 编译器中常用的间接调用法(Indirect Call)
分析
查看字符串 找到输入错误时显示的字符串
往上查找, 果然只要到包含条件转移语句的代码(判断用户输入的序列号与字符串是否相同)
《逆向工程核心原理》学习笔记(五)
来源: http://www.bubuko.com/infodetail-3002536.html