摘要:
## so加固分析 查看so文件加固前的`program header table`, ![](https://img2023.cnblogs.com/blog/2052882/202308/2052882-20230827192534836-2004579636.png) so文件被加固后`pro 阅读全文
摘要:
## 内存泄漏问题 ``` class BaseA { public: BaseA() { printf("BaseA::BaseA()\n"); }; ~BaseA() { printf("BaseA::~BaseA()\n"); }; virtual void func1() {}; }; cl 阅读全文
摘要:
对于ue4而言,符号如果暴露出来的可以直接通过导出表寻找GWorld,GUObjectArray。ue4.23版本以前的通过GNames函数,ue4.23版本及其以后的通过FNamePool::FNamePool构造函数寻找GName。对于未暴露符号的寻找方法和ue5未暴露符号的三件套找法一样。 # 阅读全文
摘要:
4.23版本及其以上与低版本的GName解析有较大差别。 ## 解析GName 4.23版本及其以上的`GName`保存在内存池`NamePoolData`中,`NamePoolData`实际就是一个静态全局数组,保存的就是`FNamePool`对象。 ![](https://img2023.cnb 阅读全文
摘要:
ue4游戏中的所有对象名称都保存在GName中,4.23版本以下的GName解析与高版本的不同。 ## 解析GName 4.23版本以下可以通过`FName::GNames()`获取到`GName`指针,对应的GName指针就是`static TNameEntryArray* Names`,利用`u 阅读全文
摘要:
UnCrackable-Level1 第一题是一个纯java层逆向,首先程序会进行root和debug检测。 root检测就是通过检测su等文件和Build.TAGS是否包含test-keys。因为我的机子是自己编译的userdebug版本,所以会被检测到root,frida直接hook检测函数并返 阅读全文
摘要:
由于vmware虚拟机经常死机,所以尝试使用wsl去编译android相关源码 wsl编译环境 环境依赖参考编译android的aosp源码时设置的环境 https://www.cnblogs.com/revercc/p/16826591.html 使用共享目录 这里注意wsl使用的ext4文件系统 阅读全文
摘要:
此app为猿人学2020年的赛题,需要得到0-99所有id值对应的返回结果之和。抓包查看到接口为/api/match/11/query,参数是id值以及sing值,返回数据就是id值对应的data值。 反编译apk得到发起请求的函数为query,其调用getSign1以id值为参数生成sign值,o 阅读全文
摘要:
第四题调用System.currentTimeMillis获取毫秒时间戳,然后调用com.yuanrenxue.match2022.fragment.challenge.ChallengeFourFragment.signnative函数生成sign值,传入的参数是page+":"+时间戳。 gRP 阅读全文
摘要:
第一题是java层加密,第二道是so加密,第三道是so混淆,经过分析前三道题sign生成算法不同,但是可以用相同的方法获取flag,这里以第一题为例:`charles` + `postern`抓包分析获取到两个接口。`/time`接口获取时间戳,`/app1`接口传入参数page,sign和前面获取 阅读全文