notion链接:https://massive-delphinium-20c.notion.site/Unicorn-e96707bc165846eda26ff6b2af8df636
参考:https://bbs.pediy.com/thread-253868.htm
Unity3D + Frida +Hook首先,unity3d是一款游戏引擎,主要开发语言是c#
unity3d编译后代码文件有两种运行模式:
1.c#字节码模式,代码位于Assembly-CSharp.dll直接用dnspy反编译
2.AOT预编译模式,代码位于il2cpp.so
这里我们主要来研究il2cpp.so的逆向,该文件是一个可执行文件,其代码是游戏的C#字节码编译成的原生汇编代码。AOT编译主要是为了优化性能,但同时也增加了逆向难度。
il2cpp机制将C#中所有的类型信息保存到global-metadata.dat的文件,通过解析global-metadata文件,可以获得C# ...
原文链接https://docs.microsoft.com/zh-cn/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170
演练和使用自己的动态链接库C++1.在visual studio中创建DLL项目。
2.将导出的函数和变量添加到该DLL。
3.在Visual Studio 中创建一个控制台应用项目。
4.在该控制台应用中使用从DLL导入的函数和变量。
5.运行已完成的应用。
本演练中两个方案,一个生成 DLL,另一个生成客户端应用。 DLL 使用 C 调用约定。 只要平台、 ...
第8章进程异常是允许操作系统提供进程概念的基本构造块
在前面的章节也有提到过进程,这是一个抽象的概念,在运行程序是我们会得到一个假象就好像我们的程序是系统中运行的唯一的程序一样。这些假象都是通过进程的概念提供给我们的。
进程的定义就是一个执行中程序的实例。系统中每个程序都运行在某个进程的上下文中,而上下文是有程序正确运行所需的状态组成的。
每次用户向shell输入可执行文件的名字运行程序时shell就会创建一个新的进程,然后在上下文中运行这个可执行目标文件。
进程提供给应用程序的关键抽象由两个部分组成。
1.一个独立的逻辑控制流,构造了程序独占使用处理器的假象
2.一个私有的地址空间,构造了程 ...
理解符号执行-angr符号类似于我们在计算未知数x的值,我们可以通过路径来求解未知数。通过判断条件来选择路径,当符号满足设定条件时即走了正确的路径。
我们需要通过符号执行来达到一个目标,假设这个目标是走到success这一步。
那么我们符号执行的步骤就相当明了了。
第一步:找到符号。一般这里我们的未知数,即符号就是我们的input。
第二步:找到路径(分支)。
第三步:评估每条路径。
由于路径和二进制文件的复杂度提升,我们给出了更好的选择来通过电脑来评估路径,于是就有了angr
Angr是一个符号执行引擎。
它可以:
遍历二进制文件(并遵循任何分支)
搜索符合给定条件的程序状态
解给定路径(和 ...
前言这是一个关于c++逆向的阅读材料,我大致做一些笔记,因为是全英文所以基本是翻译)
介绍c++中主要是类,在我们理解c++时,对于c++目标的主要部分(类)以及这些部分如何联系在一起(类关系)有一个宏观的概念。
为了实现这种理解,我们必须能够:
(1)识别类
(2)识别类之间的关系
(3)识别类成员。
而人工分析检索c++类信息方法和自动化是这篇文章要讨论的内容。
手动分析c++二进制文件本节介绍分析c++二进制文件的手动方法;它特别侧重于识别/提取c++类及其对应成员(变量、函数、构造函数/析构函数)和关系。请注意
首先,我们需要识别这是否是一个c++文件,或者运用了c++的类,下面几种可 ...
Watertoday i do nothing but i open the test of pwn, so……,my first blog in 2022
Start2022的第一篇博客,因为没接触过pwn就从攻防世界的新手题跟着做开始,找了一个视频跟着学和写,刚接触下来还是觉得比较有意思,但是听说看东西很折磨人)
Point最开始的做题步骤首先是查位数,逆向中一般直接使用DIE就可以,在pwn里面可以直接file来查看文件的位数,这在编写exp文件的时候需要。然后是checksec命令,帮助我们看开了甚么保护。但打保护这方面我还没有学到,记得查就对了,养成好习惯。
121 -- file ...
XXTEA python 加密/解密脚本Startnormal24里面终于遇到了xxtea了,新加密get,找比较好的解密脚本也花了不少时间。另外还有tea和xtea的,这个写的头疼等摆一会有空补上。
参考http://www.yaowenming.com/A/8Bz8qZ6XJx/
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465import struct_DELTA = 0x9E3779B9 #固 ...
Starts断断续续总算把csapp的第一章看完了,算是非常基础的介绍部分,介绍了很多计算机硬件的知识和常识,以及后面章节会涉及到的一些学习的内容。
编译系统说实话,了解原理还算比较有趣的,从helloworld程序讲起。从源文件到编译成可执行目标文件需要经过四个阶段,分别由预处理器,编译器,汇编器,链接器,他们构成了编译系统。而我们需要去了解编译系统是如何工作的,这样才能够实现优化程序性能,理解链接时出现的错误,避免安全漏洞。里面会用到汇编,链接和算法的知识,在我们写程序时常常会有运行复杂和安全性的区别,了解编译系统是至关重要的。
处理器读取解释指令当编译结束后系统硬件需要工作来执行可执行文 ...
starts这篇其实是对normal11的wp的一个复现,因为学习到了很多没接触过的东西所以想做一个归纳,以后查看的时候也比较方便。wp写的比较简略,只是给了一个大致的思路,需要搞懂还是要手操一遍才会发现自己哪里不会。
多可执行文件的分析处理首先是关键代码不在main里面,main函数里有很复杂的代码,看起来并不像关键代码。这里可以在start开始下断点然后跟进看会先走哪里。跟着wp查看init(main)函数前调用的函数,点进去看调用了一个可疑函数sub_400976,然后通过问和查资料了解了一下这段代码的意思。
就是从结尾开始读取12936个字节,当作文件运行。也就是这个文件里有两个可 ...