APP逆向系列学习(二)
这个章节主要是体验frida进行脱壳,前期有些问题太多了,真是人麻了。
android配置:
说下遇到的问题,在new project的时候,选中了empty activity,直接进行make project的时候,进行了报错
谷歌看下,说是要把bulid-tools以及lib中的d8全部修改为dx,修改完以后又是重新报错了~这时真的是人麻了
就这两个报错,从周一下午,晚上12点还在折腾这个。早上去单位的时候,想了想,会不会是Kali的问题?
重装kali~重装后还是不行。想想换个平台,从windows系统上试试,结果还是不行,在单位给我气笑了。
冷静思考思考,kali没错,android studio版本没错。只是在编译成app的时候报错了,会不会是这个地方有问题?
重新看了看视频,发现用的是SDK 34,找到tools->SDK Manager修改SDK。将SDK从34修改为30。具体可以看这篇文章
https://blog.csdn.net/hou09tian/article/details/120105837
接着更改gradle文件
将gradle的配置文件更改为低版本后clean project 再rebuild project,这样就能编译成apk了。如果有了解的小伙伴,可以后台私信我,大家一块学习。
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 30
buildToolsVersion '30.0.0'
defaultConfig {
applicationId "com.r0ysue.givemefive"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.1'
}
在项目的build下就找到了apk文件了
安装jeb,这个工具能够动态调试,有能力请支持正版
https://www.52pojie.cn/thread-1598242-1-1.html
这几天顺便学习了下kali下是如何切换jdk的
https://blog.csdn.net/grb819/article/details/121633285
安装010editor
https://www.sweetscape.com/010editor/
安装 scrcpy
https://blog.mbigfish.com/index.php/archives/2204/
scrcpy安装后就能直接在电脑上控制手机了,比如下面就是安装后直接在kali里面打开我手机的效果
加壳分类:
-
一代整体型壳:采用Dex整体加密,动态加载运行的机制;
-
二代函数抽取型壳:粒度更细,将方法单独抽取出来,加密保存,解密执行;
-
三代VMP、Dex2C壳:独立虚拟机解释执行、语义等价语法迁移,强度最高。
本次其实最重要的是体验frida脱壳,由于APP版本受到限制,并且我也没找到合适的APP,所以只能先空下来了。但是不影响先安装frida工具。frida安装工具有个对应表,这里写下我安装的版本
proxychains4 pip install frida==14.2.18
proxychains4 pip install frida-tools==9.2.5
proxychains4 pipp install objection==1.11.0
关于脱壳的地方,可以先看看下面这两篇文章,对一代壳、二代壳脱壳有个大概了解。
https://www.anquanke.com/post/id/221905
https://www.anquanke.com/post/id/197670
ps:重装Kali系统后,按照笔记进行二次重装工具的地方,发现很多问题的解决办法当时没有记录还要进行二次查询。为了防止二次查询也觉得文章需要再重新优化一遍,就直接把文章给删了,重新再发布一遍。
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号不为此承担任何责任。
欢迎关注公众号“呼啦啦安全”,原创技术文章第一时间推送。
原文始发于微信公众号(呼啦啦安全):APP逆向系列学习(二)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论