Windows 下的逆向分析-初探

admin 2023年3月12日20:40:33Windows 下的逆向分析-初探已关闭评论71 views字数 1058阅读3分31秒阅读模式

环境信息

系统信息:Windows 11

涉及工具:Visual studio 、x64dbg

测试代码:

```

include

int main()
{
int a;
printf("Please input a number:\n");
int x = scanf_s("%d", &a); //这不是将a的值赋给x,而是用来判断
//这是定义一个整型变量 x,scanf_s是输入一个值a,当你输入一个整型值,就会得到x = 1(判断为真);而当你键输入一个字符或其他不符合条件的内容时,就会得到x = 0(判断为假)
printf("%d\n", x);
if (a % 5 == 0 && a % 7 == 0 && a >1 && a <200) /判断该数是否能同时被5和7整除并且a大于1小于200/
printf("yes\n"); /如果能,则输出yes/
else
printf("no\n"); /如果不能,则输出no/
return 0;
}
```

游戏规则

输入一个数值,使其终端返回出如下信息:

1
yes

备注:正常输入140即可满足需求

打破规则

输入不符合条件的内容,也可满足需求

示例思路:

程序运行后,会输入一段字符串

Windows 下的逆向分析-初探

之后用户开始输入,判断后返回一些内容。

Windows 下的逆向分析-初探

正常流程输出的字符串代码会在判断代码之前,并很有可能在一个区域,可测试根据这一段字符串定位到判断代码区域。

验证:

如下设置,会在Enyry Breakpoint 处断下

Windows 下的逆向分析-初探

点击运行按钮让程序继续运行

Windows 下的逆向分析-初探

此时返回x64dbg界面,搜索程序加载的字符串信息

Windows 下的逆向分析-初探

结果

Windows 下的逆向分析-初探

鼠标左键双击进入,此时看到了一些判断流程

Windows 下的逆向分析-初探

鼠标滚轮上滑可看到此功能区域的入口点(sub)

sub上有多个int3,判断此为call调用的地址

Windows 下的逆向分析-初探

下断点

Windows 下的逆向分析-初探

重新加载程序

Windows 下的逆向分析-初探

运行到下断点的地方

Windows 下的逆向分析-初探

在Call、判断指令下断点用于分析

Windows 下的逆向分析-初探

lea 指令:取偏移地址7FF7D3DA2260发送到寄存器RCX

Windows 下的逆向分析-初探

Windows 下的逆向分析-初探

单步运行,看到此Call过后终端输出了如下字符串

Windows 下的逆向分析-初探

此Call后终端可输入数值

Windows 下的逆向分析-初探

确认后

Windows 下的逆向分析-初探

Call寄存器信息

Windows 下的逆向分析-初探

Call后返回1

Windows 下的逆向分析-初探

重新运行,输入不满足条件的值对比

Call寄存器信息

Windows 下的逆向分析-初探

Call后返回0

Windows 下的逆向分析-初探

差异

RAX不同

重新运行并输入不满足条件的值,并更改rax信息为1

选中RAX或对应的值并右键

Windows 下的逆向分析-初探

修改

Windows 下的逆向分析-初探

Call运行后看到已返回1,已打破一条规则

Windows 下的逆向分析-初探

继续运行后看到如下判断情况

Windows 下的逆向分析-初探

判断:根据显示的指令执行流程判断,若两个jne指令不跳转并jbe跳转就可返回yes

右键编辑指令,使其不起作用

Windows 下的逆向分析-初探

Windows 下的逆向分析-初探

修改指令

Windows 下的逆向分析-初探

Windows 下的逆向分析-初探

修改完后

Windows 下的逆向分析-初探

运行验证

Windows 下的逆向分析-初探

本篇文章,到此告一段落,有缘再会。

测试代码修改于:https://blog.csdn.net/qq_42200183/article/details/81431747

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月12日20:40:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows 下的逆向分析-初探http://cn-sec.com/archives/1599483.html