08 2023 档案

摘要:压缩壳并不一定会使so的体积变小,这一点和pc的压缩壳是相同的。 压缩壳实现思路 so被压缩后和之前分析的情况基本类似,这里主要看第一个PT_LOAD段的内存大小是远大于文件大小的。 对应的内存大小比文件大小多出来的这部分就是.bss了,就是第一个PT_LOAD段中最后的那段内存了。 这段内存保存了 阅读全文
posted @ 2023-08-30 23:09 怎么可以吃突突 阅读(243) 评论(0) 推荐(0) 编辑
摘要:## 函数虚拟化 函数虚拟化保护和函数混淆保护整体思路差不多,将函数划分为若干个基本块。之前每一个基本块的代码是替换为等效花指令混淆,虚拟化的话就是将原有指令进行翻译,用自定义虚拟机去解释执行。 每次进入虚拟机执行前先保存寄存器环境 ![](https://img2023.cnblogs.com/b 阅读全文
posted @ 2023-08-30 21:56 怎么可以吃突突 阅读(307) 评论(0) 推荐(0) 编辑
摘要:so加固前后的格式变化和之前分析反调试类似,都是增加第一个PT_LOAD代码段的大小,并在原始so代码部分的最前面嵌入自己的代码,包括受保护函数混淆的后的代码。 函数混淆思路分析 函数受保护前如下 函数被混淆保护后发现代码头部首先会调转到嵌入代码中 查看嵌入代码自然是全都是花指令,老办法用unico 阅读全文
posted @ 2023-08-29 00:36 怎么可以吃突突 阅读(298) 评论(0) 推荐(0) 编辑
摘要:## so加固分析 查看so文件加固前的`program header table`, ![](https://img2023.cnblogs.com/blog/2052882/202308/2052882-20230827192534836-2004579636.png) so文件被加固后`pro 阅读全文
posted @ 2023-08-27 21:24 怎么可以吃突突 阅读(577) 评论(0) 推荐(0) 编辑
摘要:## 内存泄漏问题 ``` class BaseA { public: BaseA() { printf("BaseA::BaseA()\n"); }; ~BaseA() { printf("BaseA::~BaseA()\n"); }; virtual void func1() {}; }; cl 阅读全文
posted @ 2023-08-25 17:44 怎么可以吃突突 阅读(166) 评论(0) 推荐(0) 编辑
摘要:对于ue4而言,符号如果暴露出来的可以直接通过导出表寻找GWorld,GUObjectArray。ue4.23版本以前的通过GNames函数,ue4.23版本及其以后的通过FNamePool::FNamePool构造函数寻找GName。对于未暴露符号的寻找方法和ue5未暴露符号的三件套找法一样。 # 阅读全文
posted @ 2023-08-18 23:43 怎么可以吃突突 阅读(5911) 评论(2) 推荐(0) 编辑
摘要:4.23版本及其以上与低版本的GName解析有较大差别。 ## 解析GName 4.23版本及其以上的`GName`保存在内存池`NamePoolData`中,`NamePoolData`实际就是一个静态全局数组,保存的就是`FNamePool`对象。 ![](https://img2023.cnb 阅读全文
posted @ 2023-08-14 19:50 怎么可以吃突突 阅读(2773) 评论(1) 推荐(0) 编辑
摘要:ue4游戏中的所有对象名称都保存在GName中,4.23版本以下的GName解析与高版本的不同。 ## 解析GName 4.23版本以下可以通过`FName::GNames()`获取到`GName`指针,对应的GName指针就是`static TNameEntryArray* Names`,利用`u 阅读全文
posted @ 2023-08-13 23:08 怎么可以吃突突 阅读(2072) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩