吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6732|回复: 45
收起左侧

[Android 原创] luckfollowme arm 学习篇(1) --环境搭建1

  [复制链接]
2016976438 发表于 2023-4-26 01:01
本帖最后由 2016976438 于 2023-4-26 01:02 编辑

luckfollowme arm  学习篇(1) --环境搭建1

自从上次用 mt 开源的签名校验简单说了一下过程,

然后很多人问我具体原理是啥。但是我不敢答。

因为我也想知道呀,我连c++都看不懂。更别说那个 xhook   hook open 一系列函数 能解决 签名校验问题。

在我研究 xhook 过程中,我一顿乱搜。 跳到了一个坑

elf  PLT 重定向hook

arm inline hook

elf 看了看 。没看懂。故先从 arm 开始。

为了学 arm 。 我用了1个月快速 入门 c++ ndk 等等基础的东西,当然我个人是急性子,教程太多都不知道怎么看,是否正规也不清楚,摸石头过桥,后面有不合理的地方也欢迎指出。

后面教程希望您跟我一样 起码 学1个星期 c++ 在过来,这样您应该跟我一个水准了。我相信看这章都跟我一样是新手,right?

安装gcc g++ gdb

gcc g++ 您可以理解为编译 c 和 c++ 的编译器

gdb 是用来 debug 用的

当然安装我们可以使用 msys 进行安装

下载地址: https://www.msys2.org/

下载完打开你会发现类似 git 的窗口

03.png

其中有个很重要的命令 pacman . 我把它理解为包管理器。

输入下面命令 安装 mingw-w64 工具链

pacman -S --needed base-devel mingw-w64-x86_64-toolchain

这个工具链有着 gcc g++ gdb 等工具,来帮助我们把c++编译成 windows 可执行程序

为什么不是 android(linux) 可执行文件? 后面会说。

安装好后,在您 msys2 的 mingw64 的 bin 目录下会有我们想要的文件。

F:\c++\msys2\mingw64\bin

您可以考虑放在 path 路径下,这样 命令窗口 可以直接用 g++ gcc 等命令了

配置 vscode 编写c++ 代码

为什么选vscode呢? 明明visual studio 自动集成环境更方便。

我觉得像我这种新手, 用 vscode 自己搭建环境 更能多了解下 编译过程。

再者vscode 插件丰富,什么语言都支持,看些开源代码更容易。

1.创建我们编写代码的目录,名字随意 我就叫 practice 了

2.安装 c++ 插件 ,按 Ctrl+shift+X 跳到插件安装界面

</p>

01.png

</p>

这个插件能很好的帮我们 intellijSense 也就是智能提示 。

3.配置 c++ 的 intellijSense

在最上边有个 帮助->显示所有命令  然后 搜索 c++编辑配置

</p>

02.png

</p>

然后您的 c_cpp_properties.json 文件配置应该如下:

{
    "configurations": [
        {
            "name": "Win32 g++",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "cStandard": "c17",
            "cppStandard": "c++17",
            "configurationProvider": "ms-vscode.cmake-tools",
            "compilerPath": "F:\\c++\\msys2\\mingw64\\bin\\g++.exe"
        }
    ],
    "version": 4
}

注意 compilerPath 写您 mingw64 下的的路径

这样 您 应该就拥有了代码提示功能

4.hello word ,一切基础从 hello word 开始,我也是这样过来的。

创建 hello.cpp 文件 ,这是 c++ 的源文件

#include <iostream>
#include <vector>
#include <string>

int main()
{
    std::vector<std::string> msg {"Hello","World"};
    for(const std::string &word : msg){
        std::cout << word << " ";
    }

    std::cout << std::endl;
}

然后再当前目录下 执行

 g++ -g .\hello.cpp -o hello.exe

您应该就可以得到一个 hello.exe 文件

接下来 执行下面命令 您就可以得到 hello world 字样

./hello.exe

下一章我将介绍 如何使用 android studio 中 ndk 的 cmake 工具链 完成 交叉编译成 linux 的可执行文件。

免费评分

参与人数 20吾爱币 +22 热心值 +16 收起 理由
hl520 + 1 谢谢@Thanks!
junjia215 + 1 + 1 用心讨论,共获提升!
yuanyuanliya + 1 谢谢@Thanks!
1MajorTom1 + 1 热心回复!
lx12 + 2 + 1 我很赞同!
wanjingbo + 1 用心讨论,共获提升!
zhczf + 1 + 1 我很赞同!
xiayanxiao + 1 + 1 谢谢@Thanks!
a948423110 + 1 + 1 谢谢@Thanks!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
gaosld + 1 + 1 谢谢@Thanks!
allspark + 1 + 1 用心讨论,共获提升!
yixi + 1 + 1 谢谢@Thanks!
morningb0y + 1 + 1 谢谢@Thanks!
SPT + 1 + 1 我很赞同!
N1san + 1 + 1 热心回复!
zjcasdfghjkl + 1 用心讨论,共获提升!
random1 + 1 + 1 我很赞同!
alexkaer + 2 + 1 用心讨论,共获提升!
debug_cat + 1 + 1 谢谢@Thanks!我是第一个评分,跟大佬学习。

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

643166069 发表于 2023-4-26 08:16
真早啊,感谢这么早的分享,是不是用 linux环境更好一些呢?
aa2923821a 发表于 2023-4-26 09:44
freedover 发表于 2023-4-26 09:53
debug_cat 发表于 2023-4-26 11:06
最近也在学习,但是进度比较 慢
 楼主| 2016976438 发表于 2023-4-26 11:21
debug_cat 发表于 2023-4-26 11:06
最近也在学习,但是进度比较 慢

教程是真的难找呀,越到后面越难学。
debug_cat 发表于 2023-4-26 11:24
2016976438 发表于 2023-4-26 11:21
教程是真的难找呀,越到后面越难学。

是啊,没人带好男
 楼主| 2016976438 发表于 2023-4-26 11:36
debug_cat 发表于 2023-4-26 11:24
是啊,没人带好男

差90 积分就有权限能加大佬好友了。
debug_cat 发表于 2023-4-26 12:51
2016976438 发表于 2023-4-26 11:36
差90 积分就有权限能加大佬好友了。

你多发教程,很快就突破了
lc7753 发表于 2023-4-26 13:07
小弟不知道这是啥,麻烦有空科普下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-22 00:02

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表