转载自:http://0nly3nd.sinaapp.com/?p=642

0×1

so文件是一个elf格式的文件

通过对elf文件格式的了解。so在被加载之前,会执行init段的代码。在结束的时候,会执行fini段的代码。

上次分析过360的加固,他们采用的就是在init中执行代码的解密函数。(这也是为什么在jni_onload中无需解密的原因)

今天就展示一下怎么将自己的函数放入init段,并执行。

0×2

so代码

s.c

编译生成so:

0×3

调用so

ts.c

s.h

编译生成可执行文件:

0×4

指定程序加载so的路径

新建名为e的文件:

0×5

运行

终端中输入:./e &

可以看出,最新执行的是Init,最后执行的是Fini。

今天了解到一种动态调试手法,据说能够断在init中,明天再来试试。

 

参考文章:mypyg.iteye.com/blog/845915


Logo

更多推荐