美文网首页
android逆向学习笔记

android逆向学习笔记

作者: xsren2019 | 来源:发表于2019-11-25 17:21 被阅读0次

学习尼古拉斯.赵四的大黄书的一些自己不会的知识点,给自己留个提醒。

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指令
阮一峰汇编语言入门

相关文章

  • Android笔记

    [toc] Android笔记 前言: 本笔记基于MacOS系统 学习意图: 为了做逆向打基础 笔记内容: and...

  • smali学习笔记之四种方法破解一个简单creakme

    概述 自己以前学习android逆向的一个笔记,虽然超级简单,但是涉及到smali汇编,java层逆向的思路以及x...

  • Android逆向分析笔记

    layout: wikititle: Android逆向分析笔记categories: Reverse_Engin...

  • android逆向学习笔记

    学习尼古拉斯.赵四的大黄书的一些自己不会的知识点,给自己留个提醒。 1、android字段签名 int funct...

  • Android 逆向笔记

    很久没写过文章了,新开一个目录,用平时闲余的时间把学习到的东西和开发中遇到的问题都上传到这里~ frida 专题f...

  • 初识汇编

    逆向课程随堂笔记 001--初识汇编 我们在学习逆向开发之前,我们要了解一个基本的逆向原理.首先我们是逆向iOS系...

  • Android逆向分析概述

    学习逆向的初衷是想系统学习Android下的hook技术和工具, 想系统学习Android的hook技术和工具是因...

  • Android线程池学习笔记(一)

    Android线程学习笔记学习了线程源码,Android Future学习笔记学习了Future体系,接下来我们就...

  • Day62+五组杨一丁+《高效人士用超级笔记术》读书笔记

    真正的学习是会学以至用,小西提到的逆向思维笔记,主动就寻找解决答案。 所谓“逆向思维”笔记,要求我们以大众日常思维...

  • Android逆向 Dex文件

    Android 逆向学习指南Android 可执行文件-dex 文件uleb128 数据类型SourceInsig...

网友评论

      本文标题:android逆向学习笔记

      本文链接:https://www.haomeiwen.com/subject/pvujwctx.html