-
-
[讨论]Android 移动安全攻防实战 第二章
-
发表于: 2022-9-3 22:31 4259
-
破解第一个Android应用
2.1
利用APKTool反编译apk
下载ApkTool
然后用jar包来反编译
反编译NDKDemo,默认创建的NDK
1 | java - jar apktool_2. 6.1 .jar d xxxxxx.apk - o output_dir |
在这个放jar包的地方输入自己的apk名字然后-o 输出到output_dir里面。output_dir会自己建的。
java2smali
将java语言转为smali的方法。
idea也有插件
构建的地方可以转过去
现在不会写smali所以看着书写。
在
move-result-object v0后面加上
1 2 3 4 5 6 7 8 9 | const / 4 v1, 0x1 invoke - static {p0,v0,v1}, Landroid / widgt / Toast; - >makeText ( Landroid / content / Context; Ljava / lang / CharSequence;I) Landroid / widgt / Toast; move - result - object v1 invoke - virtual {v1}, Landroid / widget / Toast; - >show()V |
以及在onCreate更改局部变量
1 2 3 | # virtual methods .method protected onCreate(Landroid / os / Bundle;)V . locals 2 |
就可以在一开始创建的NDKDemo里创建Toast了
重新编译并签名
//一开始不严谨报错了几次,看了其他的代码改好了。如果出错apktool还会指出来在第几行非常好用
重新编译指令
1 | java - jar apktool_2. 6.1 .jar b output_dir - o hello_world_unsigned.apk |
然后创建jks文件 在Android Studio中的Build里可以Generate Signed APK
详情
1 | java - jar apksigner.jar sign - verbose - - ks 111.jks - - v1 - signing - enabled true - - v2 - signing - enabled true - - ks - pass pass :(密码) - - ks - key - alias key0 - - out hello_world_signed.apk hello_world_unsigned.apk |
然后就可以了
但是打不开不知道为什么。难道是虚拟机的事?
赞赏
他的文章
看原图
赞赏
雪币:
留言: