摘要: 此类函数还是有杀伤力的1、openAssetFile(Uri uri, String mode)This is like openFile(Uri, String), but can be implemented by providers that need to be able to return sub-sections of files, often assets inside of their .apk.2、openFile(Uri uri, String mode)Override this to handle requests to open a file blob.3、openT 阅读全文
posted @ 2013-08-19 18:27 yarpee 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 通常函数返回使用 pop {r7,pc}或bx lr等方式(bx,b类似jmp为跳转指令,但bx可以指定跳转区域究竟为thumb还是arm指令。thumb指令指令的时候,直接填写该地址却总是产生SIGSYS信号(非法指令执行)。原因就是该函数为thumb指令,因此跳转时必须要把指令地址的最低位设置为1(bx 通过这一位来区分指令集),所以函数地址就加了一。thumb指令集与arm指令集切换movR0,#5 ;Argument to function is in R0addR1,PC,#1 ;Load address of SUB_BRANCH, Set for THUMB by... 阅读全文
posted @ 2013-08-08 15:26 yarpee 阅读(888) 评论(0) 推荐(0) 编辑
摘要: 新增个手写GNU语法arm的方法,以后可以狂逆狂写hello.S文件.datamsg:.ascii "Hello, ARM!\n"len = . - msg.text.globl _start_start:/* syscall write(int fd, const void *buf, size_t count) */mov %r0, $1 /* fd -> stdout */ldr %r1, =msg /* buf -> msg */ldr %r2, =len /* count -> len(msg) */mov %r7, $4 /* write is 阅读全文
posted @ 2013-08-07 22:45 yarpee 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 使用strace for Android跟踪系统调用过程方便后续的so文件分析http://benno.id.au/blog/2007/11/18/android-runtime-stracehttp://mpigulski.blogspot.com/2010/09/debugging-dlopen-unsatisfiedlinkerror.html 阅读全文
posted @ 2013-08-07 22:32 yarpee 阅读(956) 评论(0) 推荐(0) 编辑
摘要: 一、android jni实现1.静态实现jni:先由Java得到本地方法的声明,然后再通过JNI实现该声明方法。2.动态实现jni:先通过JNI重载JNI_OnLoad()实现本地方法,然后直接在Java中调用本地方法。采用静态实现的方式,如果没有进行加密处理,很容易就在IDA导出函数搜到采用动态实现的方式,还能起到一定的隐藏作用,导出的部分不是就能直接看到java层调的函数名,而是绑定的函数名native层:在JNI_OnLoad注册相关函数JNIEXPORT jstring JNICALL native_hello(JNIEnv *env, jclass clazz){return (* 阅读全文
posted @ 2013-07-31 16:49 yarpee 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 一、ndk编译android上运行的c程序新建个hello目录,底下要有jni目录,下面就是Android.mk文件1.Android.mk文件内容如下:LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES:= hello.cLOCAL_MODULE:= helloLOCAL_FORCE_STATIC_EXECUTABLE := true#LOCAL_STATIC_LIBRARIES := libc#LOCAL_CFLAGS += -Iinclude/dir -DSOMEFLAGSinclude $(BUILD_EXEC 阅读全文
posted @ 2013-07-31 01:19 yarpee 阅读(343) 评论(0) 推荐(0) 编辑
摘要: 简单记录比如要hook一个app包中一个类的private void c(dmp dmp1),其中dmp是个类,这种的处理的方式如下:用cydiasubstrate hook框架1.先通过hook 一个返回context对象的函数,比如SafeApplication类中的public static Context a()获取到contextpublic static Context a() { Invoke.print(); return g; }2.构造类dmp3.Class maClass = Class.forName("dmp", true, A... 阅读全文
posted @ 2013-07-30 17:03 yarpee 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 到http://www.busybox.net/downloads/binaries/下载放到sdcard然后adb shellsumount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system //保证system可写这里在android shell 内,sh:cp not found, 解决方法用"cat /mnt/sdcard/busybox > /system/xbin"于是cat /mnt/sdcard/busybox > /system/xbinchmod 755 busyboxbusybox l 阅读全文
posted @ 2013-07-18 21:46 yarpee 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 一、android service通知activity更新方式有1. service 通过广播的形式发送broadcast,向这个activity的内部类发广播的消息来更新界面2. service直接向activity发intent,把activity的launchMode设置为singleInstance二、安全性这边关注第1种方式的广播和接收intent安全,如果不对广播的发送和接收进行判断,会有很大的安全隐患在我的场景中,是动态注册broadcast,考虑安全如下:A、针对sendBroadcast1.通常采用的安全方式有setPackage设置包名intent.setAction(&q 阅读全文
posted @ 2013-07-18 01:19 yarpee 阅读(2102) 评论(0) 推荐(0) 编辑
摘要: gdb输出信息过长,需要取前面的数据,下面这种方法好(gdb) set logging file <file name>(gdb) set logging on(gdb) info functions(gdb) set logging off完了就可以去取数据了Num Basename Type Address Reason | | Source | | | | | | | | 1 OpenDoor - 0x74000 e... 阅读全文
posted @ 2013-05-15 11:03 yarpee 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 一、STMFD SP!,{R4-R7,R11,LR}表示依次把R4-R7,R11,LR放入SP中,LR在高位参考:http://blog.chinaunix.net/uid-26435987-id-3073083.html二、学习arm中如何进行参数传递在 ARM 平台上,前4个参数由寄存器 r0-r3 传递,4个后的参数由栈传递。跟 x86 一样也是最后一个参数在栈的最高地址。参考:http://www.360doc.com/content/11/1010/17/7394876_154947299.shtmlhttp://www.yun09.com/blog/post/tigerz/2011 阅读全文
posted @ 2013-05-12 22:02 yarpee 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 1.干IT,首先注意身体保养a、必须离不开喝水.正常人每天清水的摄入量为2000ml-2500ml,早晨,上午,午餐后,下午,晚上都小喝一杯 。长期工作在电脑和看电视时间较长者,多喝绿茶,首选碧螺春和西湖龙井b、IT工作、学习时间紧张早上早起,不要空腹,少量进食准备完后8点去跑步,晚上9点跑步,回来后锻炼臂力。注意跑步一定要用鼻子呼吸,不要用嘴。跑步前一定要关注当天的天气情况,较好污染少的天气下才能出去跑步。c、注意食物营养早上跑步前必须少量进食或者饮用一定的淡盐水等等。晚上主要以粗粮、粥、蔬菜、水果为主。补充维生素在早晚餐后进行,切忌空腹2.学习,必须每天补充一定的新知识多看书,读书一定要做 阅读全文
posted @ 2013-04-21 23:10 yarpee 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 之前断断续续看ARM,啥也没学到的感觉。开始系统学习arm,坚持下来,从arm开发环境,到arm模拟器实际运行。GNU AS汇编编译语法摘自skyeye arm_hello的代码start.S:#define MODE_SVC 0x13#define I_BIT 0x80.text .align 4 .global begin .type begin, functionbegin: /*disable I-bit*/ mov r0, #I_BIT|MODE_SVC msr cpsr_c, ... 阅读全文
posted @ 2013-04-17 18:01 yarpee 阅读(830) 评论(0) 推荐(0) 编辑
摘要: ssl要是没有做中间人解密的话,在加密的情况下要阻断我个人觉得可以考虑如下:(当然只是个人觉得滴)1.IP过滤2.dns过滤3.ssl random中的gmt_unix_time可能会是个固定值,skype就有这个特征。还有ssl其他的地方也可以进行监控看是否一直保持不变,4.ssl证书过滤,ssl证书是明文传输的,可以监测ssl证书是否颁发给指定域名的Analysis and Signature of Skype VoIP Session Traffichttp://hi.baidu.com/drinkey/item/69f1813495df24f72784f4b1http://www.wi 阅读全文
posted @ 2013-01-17 16:37 yarpee 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 无聊,顺便看下trapkit检查安全防护的工具checksec(http://www.trapkit.de/tools/checksec.html)1.检查用户权限if [ $(/usr/bin/id -u) -eq 0 ] ;2.RELRO选项支持可以使重定位使用的GOT,PLT变为readonlyhttp://blog.csdn.net/melody_lu123/article/details/6939484RELRO分为Full RELRO和Partial RELRO if readelf -l $1 2>/dev/null | grep -q 'GNU_RELRO' 阅读全文
posted @ 2012-12-29 21:38 yarpee 阅读(849) 评论(0) 推荐(0) 编辑