首页 > 社交 > 科普中国

Android逆向与安全

常驻编辑 科普中国 2022-09-20 脱壳   断点   指令   外壳   函数   虚拟机   内存   文件   程序   方法
NZS拜客生活常识网

NZS拜客生活常识网

过掉反调试的方法已经说明白了,下面只要F9运行,按照前面的方法过掉几次前面提到的反调试即可畅快的调试程序了。当发现当前进程调用open函数打开文件/proc/pid/maps需要注意了,脱壳需要关注的地方开始了。原被加固的dex文件开始解压和解密了。NZS拜客生活常识网

NZS拜客生活常识网

经过几次F9的调试发现了下面截图的状态,但是不要心急,只是离脱壳进了一步,此时内存dump出来的odex文件不是被加固的原dex文件的而是加固外壳qihu360的dex文件。NZS拜客生活常识网

NZS拜客生活常识网

继续F9运行程序,经过n次F9运行memcmp函数以后(其实这里可以做一个处理,暂时去掉mmap函数的断点,等到mmap函数断点处再次设置mmap函数的断点),再经过大约2次mmap函数运行以后,再一次调用memcmp函数即到了脱壳的地方,注意此时加固外壳apk程序呈现的堆栈和内存的状态。由于360加固自己制作了dvmDexFileOpenPartial函数,但是该函数需要调用memcmp进行dex文件的魔法字符串”dex“的比较,因此此时是脱壳的最佳时机。NZS拜客生活常识网

NZS拜客生活常识网

OK,现在的任务就是从内存中dump出原来完整的dex文件,既可以手动的dump出内存中的dex文件,也可以通过IDC的脚本或者dumpdex的插件将原dex文件dump出来。NZS拜客生活常识网

NZS拜客生活常识网

原apk程序的Dex文件拿到了,只需替换360加固的外壳程序的dex,删除AndroidManifest.xml文件的application标签增加的两个元素,删除assets文件的路径下增加两个文件libjiagu.so和libjiagu_x86.so以及原来的签名,重新签名一下apk程序即可。NZS拜客生活常识网

在删除的application标签增加的元素中,特别是在删除android:name =””的时候,一定要检查脱壳的classes.Dex文件中否重写过application类,如果脱壳后的classes.Dex文件中重写了application类,需要将application标签中android:name=””修改过来才行。NZS拜客生活常识网

以上就是有关dex加固的方法了,举例了360加固与脱壳流程。关于更多的Android逆向与Android技术学习我们可以私信发送:“手册”《Android核心技术手册》。由阿里P10高工整理;助力初、中级Android开发有很大帮助。NZS拜客生活常识网

NZS拜客生活常识网

文末

拓展学习NZS拜客生活常识网

so加固NZS拜客生活常识网

so反编译比较困难,比dex的反编译困难。一般做法是抽取Android工程的关键java代码转为c/c++, 然后生成so文件。so加密我只是了解了一下破坏.so部分头文件的方式加固。NZS拜客生活常识网

加固里面的VMP(虚拟机)是什么?NZS拜客生活常识网

VMP(虚拟软件保护技术)大概思路就是自定义一套虚拟机指令和对应的解释器,并将标准的指令转换成自己的指令,然后由解释器将自己的指令给对应的解释器。NZS拜客生活常识网

相关阅读:

  • 岳阳:长江禁渔小龙虾未成灾,其每脱壳一次就被天敌蚕食一
  • 煮鸡蛋,不能只用清水,多做1步多加2样,鸡蛋香嫩,很好剥壳
  • 青浦地产大闸蟹完成第四次脱壳,有望中秋前后上市销售
  • 煮鸡蛋:冷水、热水下锅都不对,牢记这3点,鸡蛋轻轻一碰就
  • [祈祷][赞]https://m.q578.com/is/
  • 成长,才是女人最好的归宿
  • 这也太露骨了,但是真好看
  • 买螃蟹应该选绿壳的还是黄壳的?老渔夫说:差别很大,买错了
  • 米类的认识,大米、小米、香米、西米、黄米、薏米别再傻
  • 如何设置断点(c语言中设置断点是什么意思)
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。