week1

VC使用

下载visual studio 2022 https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false

安装教程: Visual Studio 2022最新版安装教程(数千字图文详解),一步步教会你如何安装并运行VS2022(+背景图设置)_流苏的博客-CSDN博客_vs安装教程

大概就是他这个过程,中间注意文件尽量别放在C盘

新建项目

image-20220221232732863.png

选择c++下的控制台应用

image-20220221232809952.png

写好代码后使用上方的本地Windows调试器

image-20220221232926129.png

断点后可以调试,打开多种窗口如内存、反汇编、寄存器等如下

image-20220221233023630.png

image-20220221233136698.png

我们可以对反汇编中的代码进行分析,搞清底层的代码实现思路

下面我尝试学习下反汇编里的代码解释

c代码如下

#include<stdio.h>
int main() {
    int a = 16;
    printf("a = %d\n", a);
    return 0;
}

反汇编部分截取关键:

  • mov dword ptr [a],10h:将16进制形式的16赋给双字变量a
  • mov eax,dword ptr [a]:将a的值mov入eax通用寄存器中,eax表示32位寄存器,属于x86中的
  • push eax:入栈
  • push offset string "a = %dn" (0737B30h):offset是属性操作符,表示应该把其后跟着的符号地址的值(不是内容)作为操作数,这里大概就是将我们c代码中的printf里的内容入栈
  • call _printf (07310CDh):调用C语言中的printf函数输出内容

借助反汇编中的数值查找内存中的字符串

image-20220221235331704.png

UltraEdit使用

一款很强大的编辑器,win、max、linux皆可,且关键是可以编辑exe文件

image-20220221235512580.png

这里我们使用查找替换来直接更改exe文件的输出,一定记得要搜的字符串得加上查询ascii的条件

image-20220221235622720.png

ctrl+R替换

image-20220221235718908.png

保存后cmd检查下,修改成功!

image-20220221235747780.png

最后修改:2022 年 02 月 27 日
如果觉得我的文章对你有用,请随意赞赏