hello223344
学习交流
展开
-
Android手游绘制基础--13AndroidApp不关闭selinux访问驱动解决方案
Android应用通常运行在一个沙箱环境中,具有限制性的权限,尤其是对于需要高级权限的操作,如直接访问硬件驱动。但是这个方案调试还是比较容易的,在ndk编译完成elf之后push到tmp中,授权,App就可以执行了,可以说隔离了App的逻辑,App只需要授权和执行完事了。目录下的设备文件需要超出普通应用权限的操作,但你可以检查并确保你的应用有所有可能需要的权限。使用上面的代码授权。如果关了selinux,那和裸跑没啥区别,流氓的app可以随意读取你的设备信息,很容易拿到你的驱动模块信息了,这个不能关。原创 2024-03-22 16:49:05 · 176 阅读 · 0 评论 -
Android手游绘制基础--12使用imgui绘制
前面准备好了屏幕坐标,现在可以使用imgui模板绘制数据了。这是效果。原创 2024-03-06 09:31:52 · 608 阅读 · 0 评论 -
Android手游绘制基础--11准备imgui绘制的数据
NDC坐标空间的范围是[-1, 1],其中(-1, -1, -1)代表了视景体的近平面的左下角,(1, 1, 1)代表了视景体的远平面的右上角。在NDC坐标空间中,所有的顶点都处于一个统一的标准范围内,不受具体屏幕尺寸和纵横比的影响。在游戏中,NDC(Normalized Device Coordinates)坐标是指在图形渲染管线中的一个标准化坐标空间。在透视变换之后,物体的坐标被转换到NDC坐标空间。一旦顶点被转换到NDC坐标空间,它们可以被映射到屏幕坐标,以便在屏幕上进行绘制。原创 2024-03-05 09:05:04 · 306 阅读 · 0 评论 -
Android手游绘制基础--10过滤活着的敌人
上面地面中v2 = a1;所以v2就是a1,if (!*(_BYTE *)(v2 + 0x48) )判断了a1相对便宜0x48的位置。TankKilled,还有这个熟悉的0x2D4,就是每一个坦克的那个a1+偏移量。前面几个不动的,就是0,会动的就是1,前面几个可以过滤掉了。2、把活着敌人数据,和矩阵数据,xyz等包装在一起。前面读取出来有几个敌人,但是真实情况是只有一个。搜索一些关于死亡的关键词,得到这样一个可疑函数。那么我们读取这个位置数据看看有什么特别的。1、根据上面偏移可以得到活着的敌人。原创 2024-03-04 09:12:49 · 250 阅读 · 0 评论 -
Android手游绘制基础--09读取坐标
重复读取后,只有最后一个数据发生变化,上面用gg去跳转进去也是只有最后一个数据会动。后面再想办法过滤前面3个数据。尝试修改这些数据查看敌人变化,这里这3个,计算敌人obj和这个数据直接偏移量,把他们2个单独勾选。从获取敌人的函数伪代码拿到偏移量,使用gg进入这个偏移量查看附近数据。在上面文章已经拿到了a1,那就把每一次偏移都打印出来,方便gg跳转。前面拿到了数量,现在根据其他代码读取坐标。下面是敌人的地址,用gg一个一个进去查看。进去后让敌人动起来查看变化的数据。原创 2024-03-01 09:23:21 · 115 阅读 · 0 评论 -
Android手游绘制基础--08读取敌人数量
读取数量是绘制前的需要,后面会通过imgui绘制数量和射线。按下x交叉发现很多调用,通过hook函数查看调用。这里有一个numofaitanks,v5就是数量。a1+0x14就是数量。找到a1就可以找到数量。查看0x1e7df,ida按g,输入地址就行。拿到数据了,但是当前游戏中只有一个。也是固定so的偏移689cc。搜索一些数量有关的关键词。v3的计算需要gmc,原创 2024-02-29 16:47:13 · 142 阅读 · 0 评论 -
Android手游绘制基础--07读取矩阵和转换
投影矩阵包括了视角、纵横比、近平面和远平面的参数,通过乘以投影矩阵,转换后的顶点坐标会进行透视变换,使得远离观察者的物体看起来较小,近处的物体看起来较大,并且根据设定的近平面和远平面来裁剪不在视野范围内的物体。投影矩阵包括了视角、纵横比、近平面和远平面的参数,通过乘以投影矩阵,转换后的顶点坐标会进行透视变换,使得远离观察者的物体看起来较小,近处的物体看起来较大,并且根据设定的近平面和远平面来裁剪不在视野范围内的物体。这个转换过程涉及到视图矩阵和投影矩阵的相乘,是通过矩阵乘法的原理来实现的。原创 2024-02-27 00:00:00 · 43 阅读 · 0 评论 -
Android手游绘制基础--06获取投影矩阵
1、ida找到投影矩阵。2、找到距离模块的偏移量。3、gg进入app中跳到偏移的地址上面查看数据。4、代码读取矩阵数据。原创 2024-02-26 10:27:10 · 40 阅读 · 0 评论 -
Android手游绘制基础--05获取矩阵
1、通过ida找到so中矩阵信息和偏移。2、通过gg查看矩阵数据。3、代码读取矩阵数据对比gg数据。原创 2024-02-26 10:25:21 · 312 阅读 · 0 评论 -
Android手游绘制基础--04动态获取模块头
1、通过maps中加载的模块信息找到基址。2、代码实现读取基址,这个是模板代码,其他游戏也通用的。3、代码读取的数据和maps对比,和gg中的模块头信息对比可以确认读取是否正常。原创 2024-02-26 00:15:00 · 603 阅读 · 0 评论 -
Android手游绘制基础--03读取内存数据
1、利用上一篇动态获取pid来配合syscall读取内存数据。2、使用gg拿到数据的地址。3、使用syscall来读取地址,对比真实的数据。4、重启游戏后重复操作,验证数据。原创 2024-02-25 01:30:00 · 341 阅读 · 1 评论 -
Android手游绘制基础--02动态获取游戏pid
1、动态读取app的pid。2、这些代码都是模板,写一次就足够了,可以自己收集起来统一存放到一个头文件中。3、下一篇是读取app的内存中的数据。原创 2024-02-24 21:09:59 · 250 阅读 · 0 评论 -
Android手游绘制基础--01脚本完成整套编译流程
1、使用脚本代替重复繁琐的命令。2、脚本完成编译,推送,授权,执行。3、利用Clion直接执行脚本。原创 2024-02-23 00:00:00 · 297 阅读 · 0 评论