• Android移动安全攻防实战 第二章


    破解第一个Android应用

    2.1

    利用APKTool反编译apk
    下载ApkTool
    然后用jar包来反编译

    反编译NDKDemo,默认创建的NDK

    java -jar apktool_2.6.1.jar d xxxxxx.apk -o output_dir
    
    • 1

    在这个放jar包的地方输入自己的apk名字然后-o 输出到output_dir里面。output_dir会自己建的。

    java2smali
    将java语言转为smali的方法。
    idea也有插件在这里插入图片描述
    构建的地方可以转过去
    在这里插入图片描述
    现在不会写smali所以看着书写。

    move-result-object v0后面加上

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    以及在onCreate更改局部变量

    # virtual methods
    .method protected onCreate(Landroid/os/Bundle;)V
        .locals 2
    
    • 1
    • 2
    • 3

    就可以在一开始创建的NDKDemo里创建Toast

    重新编译并签名

    //一开始不严谨报错了几次,看了其他的代码改好了。如果出错apktool还会指出来在第几行非常好用

    重新编译指令

    java -jar apktool_2.6.1.jar b output_dir -o hello_world_unsigned.apk
    
    • 1

    在这里插入图片描述
    然后创建jks文件 在Android Studio中的Build里可以Generate Signed APK
    详情

    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
    
    • 1

    然后就可以了
    在这里插入图片描述
    但是打不开不知道为什么。难道是虚拟机的事?

  • 相关阅读:
    Integer和int 的区别
    自学Python需要掌握哪些知识点?怎么学?
    Clickhouse—DDL 操作
    设计模式-抽象工厂模式
    代码整洁之道
    mongodb_exporter +prometheus
    jquery---动画
    Jmeter之JSON提取器说明示例
    sd-webui-controlnet代码分析
    学习记忆——图像篇——图像记忆
  • 原文地址:https://blog.csdn.net/v_3483608762/article/details/126681324