所以真正工作的函数是在E1内部,因为我们知道,在main函数之前定义全局变量,它会优先于main函数的开始进行初始化,怎么初始化的,就是通过_initerm遍历全局变量表,E2做接口,调用E1函数,进行初始化的.
上面属于Debug下的汇编
Release下的汇编
PS: Release下的汇编会做优化,有可能你看不到E2这个代理函数了.
找的方法同上,优先于main函数之前找_cinit 然后找到_initterm(注意有多个,不确定是哪个,可以看下入口点特征,前几讲已经说过)
然后看_initterm的参数,指向的是那个函数指针,我们跳过去即可.
IDA