今天无心中登入了oschina(真的是无心),看到有小伙伴发评论给我提了一些问题.随着对SO研究的深刻,我对文章中语焉不详之处,进行一些补充.windows
void _init(){} ``` 3. 那么可否给不存在"INIT段"的SO文件添加这个东东?也就是UPX可否给没有INIT函数的SO文件加壳? 仔细想一想并非非加"INIT函数"不可.其原理是在Dynamic表中增长了一条INIT表项.由于UPX只是简单的查找Dynamic中是否存在INIT表项结构.若是找不到就会报错,它本身不会主动去作添加操做. 咱们能够对任意没有INIT的SO进行添加INIT表项的简单处理.可是须要注意的一点是:INIT的地址处理.由于据我试验,UPX在执行完自身解密代码后,会执行原INIT内的代码.若是随意给一个地址一定出错.因此在没有代码的状况下尝试构造一个空函数是一个好主意. 固然你能够有其它办法可是比较复杂,好比修改UPX中load的代码.使其忽略原init段.若是你完成了这个操做,请@我哦. 2016Year4月16日 13:01:06