07 2013 档案
摘要:一、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 (*
阅读全文
摘要:一、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
阅读全文
摘要:简单记录比如要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...
阅读全文
摘要:到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
阅读全文
摘要:一、android service通知activity更新方式有1. service 通过广播的形式发送broadcast,向这个activity的内部类发广播的消息来更新界面2. service直接向activity发intent,把activity的launchMode设置为singleInstance二、安全性这边关注第1种方式的广播和接收intent安全,如果不对广播的发送和接收进行判断,会有很大的安全隐患在我的场景中,是动态注册broadcast,考虑安全如下:A、针对sendBroadcast1.通常采用的安全方式有setPackage设置包名intent.setAction(&q
阅读全文