配置完成后 , 右键点击 解决方案 , 选择 " 仅用于项目 / 仅生成 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 个 ==========
在 Y:\002_WorkSpace\002_VS\magic\libs\x86 目录下 , 生成如下可执行文件和动态库 , 这是逆向的工具 和 要注入的动态库 ;
三、逆向环境搭建
参考 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system ) 博客 , 搭建逆向环境 ;
使用 雷电模拟器 3.75 版本 , 作为运行环境 ;
拷贝在 Visual Studio 中编译的 Android 平台的 4 44 可执行文件和动态库到 /data/system/debug 目录下 , 赋予 777 权限 ;
四、使用注入工具进行逆向操作
参考
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
【Android 逆向】修改运行中的 Android 进程的内存数据 ( 使用 IDA 分析要修改的内存特征 | 根据内存特征搜索修改点 | 修改进程内存 )
博客 , 进行逆向 ;
1、获取远程进程号
执行
dumpsys activity top|grep pid
命令 , 查看当前运行进程的进程号 ;
2、注入工具准备
进入 /data/system/debug/ 目录 ,
cd /data/system/debug/
为 /data/system/debug/ 目录下的四个文件 , 赋予 777 权限 ;
chmod 777 ./*
3、注入动态库
执行
./tool 2328
命令 , 注入动态库到 2328 进程中 , 该进程号是上面 dumpsys 命令获取的 ;
4、查询内存
执行
./cmd 2328 searchcode 0x59 0x28 0xB3 0x07 0x00 0x06 0x02 0x7B 0x41 0x08 10
查询 0x59 0x28 0xB3 0x07 0x00 0x06 0x02 0x7B 0x41 0x08 10 个字节的内存特征 , 获取到一个内存地址 ;
5、修改内存
执行
./cmd 2328 modify 96A2C355 0x58 0x28 0xB3 0x07 4
修改内存地址 , 一次只能修改 4 字节 ;