文章目录
原生程序入口函数
- 入口函数指原生程序加载到内存后执行的第一个函数
- 在入口函数处可做很多事,如软件壳的代码初始化与反调试等
原生程序入口函数分析
- 以 Android 平台上的 64 位原生程序为例,用之前学过的方法生成 app.c 程序
- 用 gcc 方式编译:
- 用 Clang 方式编译:
- 编译完成后执行如下命令查看其 Entry Point,即 ELF 文件格式的入口点:
- Entry point address 即入口点地址,值为 0x570
- 执行如下命令,用 aarch64-linux-android-objdump 查看 app 程序的段信息:
- 可看出,0x570 对应
.text
段的首地址 - 执行如下命令,查看 0x570 处的反汇编代码
- 可看出,这里只执行了 0x570 处的 do_arm64_start()
- 执行如下命令,查看上述函数内容