近来反编译看一些android应用,特别是涉及到底层的功能性的应用,比如游戏加速,修改内存,挂机脚本神马的,发现里面的通信机制无一例外的都是使用的socket,基本上已经成为这类应用的一种标配了。因为这类应用有以下的几个共同点:1 需要android 手机的root权限,毕竟要修改一些比较底层的东西,没有root权限有时候木有办法修改啊2 有自己的so,同时比较重要的或者比较吃力的活都编译成一个可
前段时间有个同事问我android应用在卸载以后,如何能够通知一下服务器,让用户填写一下卸载的原因,以求为将来的应用修改积累数据。当时他是有段源代码的,但是有点小问题,我只是帮他定位一下了代码的问题,具体细节没有研究。又加上最近工作比较繁忙,所以就放下来了,今天稍微有点空,就自己做了一个应用demo,告知一下诸位在android中如何做到监听自身应用被卸载了。一 &nb
51CTO博客开发周金根
近来用ollvm来编译一些代码,主要是需要对so进行一些混淆的操作,发现了一个bug,记录如下:代码段1jint begin_antidebug() { pthread_t antidebugtid; int ret = 0;
llvm是一个新开源的编译器,笔者因为工作关系,尝试使用了一下llvm,现在将llvm编译说明总结如下:官方的llvm的说明如下网页,主要使用的指令是https://github.com/obfuscator-llvm/obfuscator/wiki/Installation$ git clone -b llvm-3.4 https://githu
smali框架源码主要是对于baksmali的一个逆向过程,也就是其编译过程。本身包的文件很少,也就是13个java文件 但是里面有几个有antlr3 和 jflex生成的词法分析器和解释器文件 smaliParser.java smaliTreeWalker.java 这两个文件
官方文档对于dex中的class数据结构表示如下:基本上就是这样了,再看 public DexBackedClassDef(@Nonnull DexBackedDexFile dexFile,  
baksmali 首先执行的第一个main 函数 public static void main(String[] args) throws IOException { Loc
baksmali 的源码分析在baksmali进行源码分析之前,需要读者掌握一条主线,因为本身笔者只是由于项目需要用到这套源码,在工作之余的时间里面来进行学习也没有时间和精力熟读源码的每个文件每个方法,但是依据这条主线,至少能够猜出并且猜对baksmali里面的源码的文件大概的作用是什么,这样在修改问题和移植的时候才能做到游刃有余。这条主线是,baksmali其实只是利用了dexlib2提供的接口
这一节,主要介绍一下 baksmali代码的框架。我们经常在反编译android apk包的时候使用apktool这个工具,其实本身这个工具里面对于dex文件解析和重新生成就是使用的baksmali 和smali这两个jar包其中 baksmali是将 dex文件转换成便于阅读的smali文件的,具体使用命令如下:java -jar baksmali.jar classes.dex -o myou
最近有一个项目需要修改一些dex文件,提起修改dex文件,最有名的就是baksmali和smali项目,这个项目并且开源,所以一个思路就是通过修改这个原来来实现修改dex文件的目的。首先是下载 baksmali源码:下载地址 https://code.google.com/p/smali/下载完成以后,将项目导入到eclipse工程中,本来笔者认为开源项目直接导入后就能够调试了,结果发现事情远远没
前置条件:1 android nexue 5 手机一部2 android L最新rom包android L rom下载地址https://developers.google.com/fit/preview#flash_your_nexus_5_or_nexus_7过程:下载完成后解压缩,这个包需要使用 fastboot工具,不是原来的zip卡刷包,好在里面的脚本文件都已经写好了,如下图:连接好手机
以前对于cm的源码编译都是基于固定机型的,有的时候需要使用模拟器,这边就记录一下使用cm的源码来如何编译android 模拟器,不过在做这件事情前你最好评估一下自己的机器配置。这里给出的推荐的配置是,i5以上的cpu,硬盘要固态硬盘,否则模拟器的启动和加载的速度几乎不可以忍受。android源码编译完成以后生成的目录都是在源码目录下的out文件夹下out/target 表示生成的是目标机器一般是手
出现java.lang.UnsupportedClassVersionError 错误的原因,是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedCl
最近工作中需要使用到 Proguard 这个加混淆的工具,现在总结一下这个工具的使用方法。proguard 官方网站地址是http://proguard.sourceforge.net/由于proGuard 这个工具配置信息比较多,所以有时间在使用的时候一定要仔细阅读一下http://proguard.sourceforge.net/#manual/introduction.html这个页面的内容
以前对apk重新打包签名都是用的apktool里面的Auto-sign 工具,后来发现有时候利用该工具对一些apk签名会失败,所以后来就使用 jarsigner这个工具,现记录一下这个工具的使用方法 1 首先要生成一个自己的key D:\>keytool -genkey -alia
近来android刷机的时候出现了几个错误,后来一一解决了,现在随笔记录如下,以便再遇到这样的错误的时候能够回想一下。1 symlink some symlinks failed一般是双wipe没有清除全下面的方法应该就能够解决了0.把xxxxxx.zip复制到手机根目录内(就是直接复制)1.开机,当闪蓝灯的时候按一下音量上键,进入Recovery2.选择【wipeda
目前网上已经有很多文章来描述如何使用eclipse来调试android源码,但是大多数都是最后基于 android虚拟机来完成最后的一次华丽转身,即享受最后调试的劳动果实,然后,然后就得忍受android虚拟机的各种缓慢,以及对esopengl库不支持导致的bug,问题,估计很多同学也就是调试通过一次就不愿意再用了。&nbs
近来android上越来越多的应用对自身的保护机制加强了重视,主要表现在几个方面。 1 dex加壳 2 so加壳 3 dex藏在so中,在适当的时候释放。 这是技术上一个进步,并且还有一些
从公司断断续续下载了3天,终于把CM-11.0 的代码给下载下来了,分享一下下载编译rom包的过程。一 前置条件1 ubuntu 13.04 系统,同时配置好android的编译环境 配置方法详见 http://source.android.com/source/initializing.html 网页2 下载源码 特别注意: &n
由于近来工作关系,少不了编译一些开源的项目到android项目中,零零散散的大概也好几个了,本身利用开源项目集成到自己的项目中是一项基本功,但是做一下总结还是很有益处,对阅读到这系列文文章的同学们也有些帮助,省得再重复的造轮子,或者是至少有一点点的参考价值。 这个系列的文章,主要以编译移植为主,源码分析比较少,主要原因是,很多时候我们使用开源项
本来笔者打算写一下adb源码分析的文章,后来发现网上已经有人写了关于adb源码通信和各种机制的文正了,写的挺好的,理解的也比笔者要深刻,所以笔者就不在重复造轮子了。但是前面的编写者,主要是从源码角度来理解,但是对于很多程序员来说,细读一遍源码,绝对没有在ide中断点跟踪一遍程序理解深刻过瘾。所以我将adb源码从android源码中提取出来,支持了ndk编译,以及eclipse下的 cdt编译。这样
网址如下 http://challenge.onebox.so.com/DeveloperZhaopin/question?tag=crack#nav-wrap公开答题时间是答题时间为4月23日-4月30日,将于5月15日公布结果。目前我主要做的方向是无线攻防里面一共有三道题等答题时间过了以后,我会在博客更新一下研究结果,还请朋友指正。关于答案:第一题本题主要是需要集成一个 openssl,然后找
以前一直在windows下使用Mindjet MindManager 这个工具来用作将自己在开发,hacker的时候一些思路记录下来的工具,以及一些需要思维想到有价值动手实现的技术点。但是后来由于windows编译android源码不方便,所以逐渐转向ubuntu下的工作了。尝试用过 wine来调用 Mindjet MindManager ,
github下载地址:https://github.com/TaintDroid 官方网址:http://appanalysis.org/ 4.1.1_r6 下载命令(可以写一个sh,顺序下载,或者从参考官方文档下载)git clone https://github.com/TaintDroid/android_platform_dalvik.git -b taintdr
前段时间我写了一篇 android gdb 调试实例演示(有源代码篇)见下面的链接http://sunzeduo.blog.51cto.com/2758509/1388555 主要是总结一下开发人员调试ndk编译出来的so来用的,对于破解人员,可能就不会有源代码,也不会有带符号表的so库文件了,这个时候破解人员要找到so中的关键函数,并且动态
android ndk代码的调试本身还是有点麻烦的,因为本身google android的sdk主要是面向广大的java程序员的,所以后来发布的 ADT 集成开发环境对java的代码调试支持还是很好的,但是对于 ndk编写的so代码就没有那么直观的图形界面的调试工具了。 相信将来google肯定要开发出来 调试c
前面转载了一篇 如何编译android gdbserver的博文原文地址如下:http://sunzeduo.blog.51cto.com/2758509/1381519本身这篇文章没有什么问题,按部就班的操作可以生成 gdbserver,但是存在的问题如下:1 本文编写时间比较早,实用的arm交叉编译版本以及gdb版本都比较老了,arm交叉编译版本是arm-eabi-4.4.3 &n
最近工作中用到一些解析bmp图片格式的工作,作为一种最简单的图片格式,bmp简单易于理解,但是就是占用空间太大。在开发过程中,需要有几点需要注意,特此记录一下。 位图格式 BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。在
关于setuid命令一 预备知识1 ubuntu下如何查看所有用户信息 cat /etc/passwd 或者 less /etc/passwd more /etc/passwd会出现下列的信息root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bi
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号