网站首页 > 教程分享 正文
学习尼古拉斯.赵四的大黄书的一些自己不会的知识点,给自己留个提醒。
1、android字段签名
int function(int foo, Date date, int[] arr)
签名为 (Iljava/util/Date;[i)I
2、native如何调用java中的method和field?如何调用方法
通过env->GetFieldID或者env->GetMethodID
通过Call<Type>Method()调用方法
3、多态、虚函数的理解
这篇文章讲得不错
主要的应用还是接口的情况,可以复用代码。
java基础还得补,重写、重载的概念都不太清晰。
封装、继承、多态。
多态主要利用了java动态绑定的特性。
4、手打一次jni代码
# include<iostream.h> # include<com_jni_demo_JNIDemo.h> JNIEXPORT void JNICALL Java_com_jni_demo_JNIDemo_sayHello (JNIEnv *env,jobject obj) { jclass clazz_date = env->FindClass("java/util/Date"); jmethodID mid_date = env->GetMethodID(clazz_date,"<init>","()V"); jobject now = env->NewObject(clazz_date, mid_date); jmethodID mid_date_getTime = env->GetMethodID(clazz_date,"getTime","()J"); jlong time = env->CallLongMethod(now,mid_date_getTime); printf("%I64d",time) }
5、遇到android 资源混淆怎么办?
比如代码中的资源编号是2131230929变成16进制是0x7f0800d1,在res/values/public.xml中可以根据id找到name。
6、setuid和setgid
参考文章
通常,在类 Unix 操作系统上,文件和目录的所有权是基于文件创建者的默认 uid(user-id)和 gid(group-id)的。 启动一个进程时也是同样的情况:它以启动它的用户的 uid 和 gid 运行,并具有相应的权限。 这种行为可以通过使用特殊的权限进行改变。
7、allowBackup属性
allowBackup为true的话,用户可以在没有root的情况下备份和恢复应用程序数据。
8、apk签名机制
修改了apk中的任何内容,必须重新签名。
签名文件、证书文件。
9、android应用加固原理
加壳程序: 对源程序apk进行加密,合并脱壳程序的dex文件,然后输出一个加壳之后的dex文件。 脱壳程序: 获取源程序apk,然后解密,然后动态加载进来,运行程序。
10、android中的so加固原理
好难,没看懂。
11、打开系统调试总开关
注入init进程,修改内存中的属性值。 使用工具mprop。
12、apktool+dex2jar+jd-gui
三朵金花
13、xposed
参考文章
关键点: 1、多个dex时和动态类如何hook 先hook Application.class的"attach"方法,拿到上下文,然后再去hook 2、使用xposed提供的反射类 findClass、getObjectField、getFloatField、setObjectField、setFloatField、callMethod等 开发步骤: 1、新建模块项目 2、编写模块代码 3、添加模块入口 asserts下的xposed_init文件 4、增加模块额外信息 AndroidManifest.xml中增加版本、描述等信息
14、zjdroid
原理是hook每个app的Application的OnCreate方法,应用在启动的时候都会注册一个广播,后续可以通过发送广播来操控应用。 命令: 1、dump_dexinfo 获取应用运行时内存中dex的信息 2、dump_dexfile dump出应用内存中的dex文件 3、
15、Cydia Substrate
还可以hook native层
16、smail语法
17、arm指令
阮一峰汇编语言入门
猜你喜欢
- 2024-10-14 APP安全学习资料收集(app安全隐患)
- 2024-10-14 Android 开发学习笔记:七大知识点板块汇总
- 2024-10-14 2019 学习 Android 看这些就够了!
- 2024-10-14 Android程序员的Java后台学习建议
- 2024-10-14 加精经验分享!Android入门怎么学(想学android)
- 2024-10-14 终于有人把安卓程序员必学知识点全整理出来了,有如醍醐灌顶
- 2024-10-14 从应用层深入Framework层,Android Framework 该如何学习?
- 2024-10-14 Android Jetpack从入门到精通(深度好文,值得收藏)
- 2024-10-14 Android平台开发学习实践(android开发实战)
- 2024-10-14 Android 菜鸟的学习之路——MVVMHabit(一)
你 发表评论:
欢迎- 最近发表
-
- 有了这份900多页的Android面试指南,你离大厂Offer还远吗?
- K2 Blackpearl 流程平台总体功能介绍:常规流程功能
- 零基础安卓开发起步(一)(安卓开发入门视频)
- 教程:让你的安卓像Windows一样实现程序窗口化运行
- Android事件总线还能怎么玩?(事件总线有什么好处)
- Android 面试被问“谈谈架构”,到底要怎样回答才好?
- Android开发工具Parcel和Serialize
- Android 中Notification的运用(notification widget安卓)
- Android退出所有Activity最优雅的方式
- MT管理器-简单实战-去除启动页(mt管理器怎么去除软件弹窗)
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)