当前位置:   article > 正文

SO解密过程_so文件解密

so文件解密

1、主要过程

        通过定义 __attribute__((constructor(101))) void init0() 来确定构造函数的开始先后顺序

        从so中获取到各个soinfo结构体的变量值,并且赋值上去的过

  1. si->decrypt_soinfo = NULL;
  2. si->base = elfreader.getBase();
  3. si->load_bias = elfreader.getLoadBias();
  4. si->phdr = elfreader.getPhdr();
  5. si->phnum = elfreader.getPhnum();
  6. si->dynamic = elfreader.getDynamic();
  7. si->prelinkImage();
  8. repairSymtab(si->symtab,
  9. cs_soinfo->cs_hidden_sym_from,
  10. cs_soinfo->cs_hidden_sym_to,
  11. (unsigned char *)si->strtab,
  12. cs_soinfo->cs_hidden_str_size,
  13. cs_soinfo->cs_hidden_sym_type);

2、自定义so结构体

        系统的soinfo还是必须的,这个其实可以换一个名字

        这个结构是加密与解密的一个联系,是加固过程与解压缩过程的一个联系

  1. struct customedsoinfo{
  2. ElfW(Addr) cs_loadbias; //需要加壳基址进行重定位, 默认在PAGE_END(DYNAMIC_END)之后
  3. ElfW(Addr) cs_phdr; //pt_load and pt_dynamic
  4. ElfW(Addr) cs_symtab;
  5. ElfW(Addr) cs_strtab;
  6. ElfW(Addr) cs_rel;
  7. ElfW(Addr) cs_rela;
  8. ElfW(Addr) cs_android_rel;
  9. ElfW(Addr) cs_dyn;
  10. ElfW(Addr) cs_encryptsoinfo;
  11. ElfW(Addr) cs_real_jni_onload;
  12. ElfW(Addr) cs_hash_vaddr;
  13. unsigned cs_phnum;
  14. unsigned cs_relcount;

3、重定位到真正的系统SOinfo

  1. si->base = elfreader.getLoadBias();
  2. si->load_bias = elfreader.getLoadBias();
  3. si->dynamic = elfreader.getDynamic();
  4. si->size = elfreader.getLoadSize();
  5. si->phdr = elfreader.getPhdr();
  6. si->phnum = elfreader.getPhnum();
  7. si->symtab = elfreader.getSymtab();
  8. si->strtab = elfreader.getStrtab();
  9. //#ifdef USE_RELA
  10. si->rela = elfreader.getRela();
  11. si->rela_count = elfreader.getRelaCounts();
  12. //#else
  13. si->rel = elfreader.getRel();
  14. si->rel_count = elfreader.getRelCounts();
  15. //#endif
  16. si->android_relocs = elfreader.getAndroidRel();
  17. si->android_relocs_size = elfreader.getAndroidRelSize();
  18. if (!si->prelinkImage()) {
  19. goto LOADFAILED;
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/872295
推荐阅读
相关标签
  

闽ICP备14008679号