![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
逆向
文章平均质量分 68
call就不要ret
大菜鸡一个,致力于向各位师傅学习,喜爱二进制安全。热爱钻研技术
展开
-
C++逆向分析--多态的本质
这篇我们延续上次的虚函数分析,来研究下多态的本质。有了上篇虚函数的知识,我们在正向开发学习的时候知道,多态的发生需要存在继承关系,并且子类重写父类方法,父类需要重写的方法是虚函数。这么几点要求。我一开始接触多态是在学习Java的时候。当时的多态搞的我是一脸懵逼。不是很理解是怎么回事。但是在C++中一切的不理解我们都可以直接去逆向分析剖析他的原理。(Java其实也可以太蠢了不会)我相信C++的学懂了,Java学起来理解起来会更加得心应手。这是大佬告诉我的。原创 2024-01-24 22:36:36 · 1345 阅读 · 0 评论 -
C++多态语法剖析
C++的三大特性:封装,继承,多态。这三个特性中,我认为最难理解和最难学习的就是多态。这篇文章总结下多态的一些概念和语法。多态顾名思义就是多种形态的表现手法。也就是让我们的功能能够因人而异的变化。原创 2024-01-23 17:03:39 · 328 阅读 · 0 评论 -
C++逆向分析--继承的本质
继承是面向对象的三个特性之一。这篇文章我们从底层的角度去理解什么是继承。他的作用是什么。首先继承的出现是更好的避免代码的重复冗余。要理解一件事很重要,C++其实是C的延申。那么C++的出现是为了解决C语言上C++祖师爷认为不友好的事情,也为了简化代码的复杂度,将更多的事情交给编译器去做,而不是程序员自己本身。举个例子,C++在类的创建和释放的过程中,会自动调用构造函数和析构函数,这是上一篇文章提到的C语言没有这个功能。原创 2024-01-23 00:43:13 · 1214 阅读 · 0 评论 -
C++逆向分析New_Delete
在C语言中,我们是用malloc函数去开辟空间的,释放空间是free函数。而在C++中用的是New关键字,释放空间用的是Delete关键字。我们观察到,做了一些初始化后,最后还是调用C语言的malloc函数。因此验证了我们上述的New其实就是对malloc做的再一次封装。因为在C语言的malloc管理中,64位下的堆其实是有0x10大小的堆头的也就是16字节。单步到这,我们发现edi就是我们的malloc函数的参数。那么堆区是干嘛的呢?一个运行程序是一定有四个区域,分别是:代码区,数据区,栈区,堆区。原创 2024-01-21 16:34:09 · 827 阅读 · 0 评论 -
逆向分析C++类的本质
面向对象的语言中,类这种语言特性是最基本也是最重要的东西。这篇博客记录下从汇编角度去理解类的本质是什么。创建一个对象的本质又是什么。原创 2024-01-20 12:43:18 · 1404 阅读 · 0 评论 -
BUUCTF刷题之路--easyre1
大半夜的闲来无事做做reverse题目。顺便唠唠嗑,第一题出乎意料的简单,甚至我都怀疑这个flag是假的,直到我复制去提交时竟然真的成功了。第一题一般都是开胃菜,教会我们如何使用做这些方向的工具,就好比做pwn的时候第一题要求我们会使用nc去链接远程服务器一样。下载题目得到的是一个zip,解压后是一个exe文件。做Pwn题的习惯,我直接扔进了IDA找到主函数,直接F5看C语言代码。我看看了代码,应该是输入两个相同的数就会输出flag。但是我去运行的时候莫名的闪退,我也搞不懂。想想也是怎么可能加壳呢,哈哈。原创 2023-06-03 01:51:13 · 393 阅读 · 0 评论