当前位置:   article > 正文

【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★_安卓云注入源码

安卓云注入源码





一、Android 进程注入工具开发系列博客



Android 进程注入工具开发系列博客 :





二、Android 进程注入工具 源码下载编译



源码下载地址 : https://download.csdn.net/download/han1202012/37385877


使用 Visual Studio 2019 编译上述源码 ;

选择 " 打开项目或解决方案 " ,
在这里插入图片描述

打开 magic 目录下的 magic.vcxproj 项目文件 ,

在这里插入图片描述

打开项目 ,
在这里插入图片描述

右键点击 " 解决方案资源管理器 " 中的解决方案 , 在弹出的菜单中 , 选择最后一个 " 属性 " 设置选项 ,
在这里插入图片描述

需要手动配置这 4 4 4 个选项 , 必须是相同的版本才可以 , 没有的话 , 自行去下载 ;

在这里插入图片描述

包含搜索路径 : Y:\001_DevelopTools\002_Android_SDK\ndk\android-ndk-r10d\platforms\android-19\arch-x86\usr\include;$(NMakeIncludeSearchPath)

生成命令行 : "Y:\001_DevelopTools\002_Android_SDK\ndk\android-ndk-r14b-windows-x86_64\android-ndk-r14b\build\ndk-build.cmd" NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk NDK_APPLICATION_MK=Application.mk

"全部重新生成" 命令行 : "Y:\001_DevelopTools\002_Android_SDK\ndk\android-ndk-r14b-windows-x86_64\android-ndk-r14b\build\ndk-build.cmd" NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk NDK_APPLICATION_MK=Application.mk -B

"清除" 命令行 : "Y:\001_DevelopTools\002_Android_SDK\ndk\android-ndk-r14b-windows-x86_64\android-ndk-r14b\build\ndk-build.cmd" NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk NDK_APPLICATION_MK=Application.mk clean


电脑中必须有 android-ndk-r10dandroid-ndk-r14b 这两个版本的 NDK , 其它版本 , 大概率会编译失败 ;


配置完成后 , 右键点击 解决方案 , 选择 " 仅用于项目 / 仅生成 magic " 选项 ,

在这里插入图片描述
命令行输出如下内容 , 说明编译完成 ;

1>------ 已启动生成: 项目: magic, 配置: Debug Win32 ------
1>[x86] Compile        : bridge <= bridge.c
1>[x86] SharedLibrary  : libbridge.so
1>[x86] Install        : libbridge.so => libs/x86/libbridge.so
1>[x86] Compile++      : cmd <= command.cpp
1>[x86] Compile++      : cmd <= json_reader.cpp
1>[x86] Compile++      : cmd <= json_value.cpp
1>[x86] Compile++      : cmd <= json_writer.cpp
1>[x86] Executable     : cmd
1>[x86] Install        : cmd => libs/x86/cmd
1>[x86] Compile++      : native <= native.cpp
1>./native/native.cpp(428,14): warning G0C39A92D: 'SearchCode' has C-linkage specified, but returns user-defined type 'std::string' (aka 'basic_string<char>') which is incompatible with C [-Wreturn-type-c-linkage]
1>        std::string SearchCode(unsigned char* data,unsigned size){
1>                    ^
1>1 warning generated.
1>[x86] Compile        : native <= asm.s
1>[x86] Compile++      : native <= json_reader.cpp
1>[x86] Compile++      : native <= json_value.cpp
1>[x86] Compile++      : native <= json_writer.cpp
1>[x86] SharedLibrary  : libnative.so
1>[x86] Install        : libnative.so => libs/x86/libnative.so
1>[x86] Compile        : tool <= main.c
1>[x86] Executable     : tool
1>[x86] Install        : tool => libs/x86/tool
1>已完成生成项目“magic.vcxproj”的操作。
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0==========
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

在这里插入图片描述

Y:\002_WorkSpace\002_VS\magic\libs\x86 目录下 , 生成如下可执行文件和动态库 , 这是逆向的工具 和 要注入的动态库 ;

在这里插入图片描述





三、逆向环境搭建



参考 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system ) 博客 , 搭建逆向环境 ;

使用 雷电模拟器 3.75 版本 , 作为运行环境 ;

拷贝在 Visual Studio 中编译的 Android 平台的 4 4 4 可执行文件和动态库到 /data/system/debug 目录下 , 赋予 777 权限 ;





四、使用注入工具进行逆向操作



参考

博客 , 进行逆向 ;


1、获取远程进程号


执行

dumpsys activity top|grep pid
  • 1

命令 , 查看当前运行进程的进程号 ;


2、注入工具准备


进入 /data/system/debug/ 目录 ,

cd /data/system/debug/
  • 1

/data/system/debug/ 目录下的四个文件 , 赋予 777 权限 ;

chmod 777 ./*
  • 1

3、注入动态库


执行

./tool 2328
  • 1

命令 , 注入动态库到 2328 进程中 , 该进程号是上面 dumpsys 命令获取的 ;


4、查询内存


执行

./cmd 2328 searchcode 0x59 0x28 0xB3 0x07 0x00 0x06 0x02 0x7B 0x41 0x08 10
  • 1

查询 0x59 0x28 0xB3 0x07 0x00 0x06 0x02 0x7B 0x41 0x08 10 个字节的内存特征 , 获取到一个内存地址 ;


5、修改内存


执行

./cmd 2328 modify 96A2C355 0x58 0x28 0xB3 0x07 4
  • 1

修改内存地址 , 一次只能修改 4 字节 ;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/301400
推荐阅读
相关标签
  

闽ICP备14008679号