最近开发项目碰到了个很神奇的野指针问题,在arm64下正常,armv7a下炸了,然而这个项目是从C代码移植过来的,ndk那边只做了层CPP的封装,配置gradle的时候,直接指定了外部cmake,因此没办法直接用android studio调试,至少我不知道有什么办法可以导入源码。
然后你看l[……]
不忘初心,方得始终
最近开发项目碰到了个很神奇的野指针问题,在arm64下正常,armv7a下炸了,然而这个项目是从C代码移植过来的,ndk那边只做了层CPP的封装,配置gradle的时候,直接指定了外部cmake,因此没办法直接用android studio调试,至少我不知道有什么办法可以导入源码。
然后你看l[……]
我们都知道x86中的寻址相对于arm稍微简单一些,arm因无法直接操作内存地址,所以需要使用成对的ldr和str指令完成操作,因此,在操作一些常量或者字符串的时候,免不了要寻址,常见的教程版本大概是这样子讲的(摘抄):
汇编器编译后,反汇编看大概是长这样的:
乍一看没什么问题吧?[……]
最近感觉记忆力衰退,遂写几篇文章进行备忘。
代码分析的过程中,经常会碰到大坨难懂的逻辑(比如动态的函数指针,鬼知道它跳到哪里去了),或是难以定位关键点的问题,这个时候就需要tracing技术了,把所有的调用记录下来,再静态分析对流程进行梳理。
用tracing技术可以用来对付那些恶心的混淆(ollv[……]
注意!本文不是广告,更不是软文,找激活码请绕道,咱根本就没用过
好吧,我承认标题有点戏虐,今天群里看到张图
emmmm,从哪里开始吐槽呢?什么时候访问国外热门网站不合法了吗?当然不会讨论这种无聊话题的话~
下载到的是一个安装包,我虚拟机前段时间搞炸了,也懒得装了,毕竟听说要用的[……]
去除java字符串混淆的工具一直不少,这里推荐几个比较好用的:
Simplify(https://github.com/CalebFenton/simplify)
这个看介绍是挺不错的,但实际使用中,很是鸡肋,执行效率低的恐怖,而且很大可能完全没作用
Dex-orcale(http[……]
能用于反编译apk/class的反编译器有很多,实际工作中几乎体验过所有的反编译器后,发现大型项目的分析,还是用ide比较方便。
众所周知,IntelliJ idea有一个很棒的反编译器,但我曾经搜索过,并没有独立版,直到今天我才知道这个东西是开源的:https://github.com/Je[……]
试了N多文本编辑器,智能提示都很不理想,包括用了Visual Studio这种宇宙第一ide也不行(还碰到了一堆bug),下载了一个pycharm community版本,导入script之后,再把ida安装目录下的python整个导入并设置为source root就可以了,整体体验十分好,强力推荐[……]
这篇文档只是个无聊的存档, 预防打脸,先写一行 ,我目前无法确定anbox的这个开源虚拟机是否给国内 http://www.vmos.com 这家公司授权可以使用源代码。
嘛,事情的经过呢,就是张总发了个A岛看到的图片,叫安卓上首款安卓虚拟机,大家都觉得又是什么无聊的Virtual App技术[……]
写这个文章呢,无非就一个理由,巩固基础,不过我这种逆向思维的性格,大家大概也知道这系列文章的走向。
关于ELF的一些结构呢,我就不在这里浪费篇幅了,随便找几篇文章都比我讲得好,这里我只提一些关联性的总结。
在program header table里面
e_phoff
e[……]