C++逆向之结构体和类

在C++中,结构体和类都具有构造函数、析构函数和成员函数,两者只有一个区别:结构体的访问控制默认为public,而类的默认访问控制是private。对于C++中的结构体而言,public、private、protected的访问控制都是在编译期进行检查,当越权访问时,编译过程中会检查出此类错误并给予提示。编译成功后,程序在执行的过程中不会在访问控制方面做任何检查和限制。因此,在反汇编中,C++中的结构体与类没有分别,两者的原理相同,只是类型名称不同。

C++逆向之数组和指针的寻址

虽然数组和指针都是针对地址操作,但他们有许多不同之处。数组是相同数据类型的数据集合,以线性方式连续存储在内存中;而指针只是一个保存地址值的4字节变量。在使用中,数组名是一个地址常量值,保存数组首元素地址,不可修改,只能以此为基地址访问内存数据;而指针却是一个变量,只要修改指针中所保存的地址数据就可以随意访问,不受约束。

C++逆向之函数工作的原理

先思考两个问题

  • 当函数执行时,程序流程会转到函数体内的实现地址,只有遇到return语句或者“}”符号才返回到下一条语句的地址处,请问编译器是如何确定应该回到什么地址处的?
  • 为什么很多高级语言在传递参数时会将实参复制给形参这一操作呢?

win xp经典扫雷的魔改(上)

这是之前发布到某论坛的教程。当时是在xp的环境下改的。现在在win10重新修改下。
魔改的目的是给经典扫雷加一个无敌的选项,勾选后踩雷自动变成插旗。
教程分为上和下。上是实现UI的修改;下是实现踩雷自动变成插旗。