中职网络安全—2022年国赛逆向PE Reverse解题思路

关于逆向入门。


一、语言

1.汇编。

分Inte|和AT&T两种语法。win平台主要是Intel ,Linux反汇编默认是AT&T ,目前CTF里Intel汇编占据主导地位。入门推荐王爽《汇编语言》,视频教程推荐b站搜索小甲鱼,他的教学对初学者很友好


2.编程。

会C语言就好。搞win平台的话,还需要懂Windows机制,会win编程更好《Windows程序设计》, 不过API那些可以用到了再查。

语言方面有一定基础了后可以看《加密与解密》

推荐从win平台开始玩。


看书太枯燥的话,推荐b站搜索发布逆向基础入门,有很多水滴逆向的视频教学,适合初学者


二、工具(调试器、反汇编器)

1.win 下的OD、IDA、 windbg

2.Linux下的gdb 、objdump、nm、Itrace那些辅助工具自己摸索,帮助文档挺全


三、关于学习

1.多动手,自己多调试分析,真正的逆向水平是无法通过看书提升的,可以自己写程序自己调试分析。

2.熟悉调试工具

3.进行linux程序分析前,先学习linux系统基础操作

4.适当玩玩crackme这类。crackme.de ,reversing.kr

5.找一些简单的逆向、pwn的ctf题边练边学

6.吾爱破解、看雪、一蓑烟雨这些站点可以去逛逛

 

中职网络安全—2022年国赛逆向PE Reverse解题思路

在这里插入图片描述


1.对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,将main函数的入口地址作为Flag值提交;
ida pro
打开ida的文件,将文件拖入x64位的ida程序里

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
我们进入了ida,可以开始对程序开始静态分析,ida也可以动态分析程序,教程我以后会出
题目是(对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,将main函数的入口地址作为Flag值提交;)
意思是我们只需要找到程序的main函数的入口即可

在这里插入图片描述

在ida左边的工作栏里,会显示程序和系统各种函数的入口地址,我们可以看到,这个程序main函数的入口地址为

0x00000000004005BD
1
或者按下空格

在这里插入图片描述

这里也能看到入口地址,看不到的话就双击程序左边任务栏里的main函数

0x00000000004005BD
1
2.对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,将该二进制文件中检查许可证的关键函数作为Flag值提交;
在这个界面按下f5

在这里插入图片描述

在这里插入图片描述
ida会尽量帮我们还原程序的源代码,分析程序源代码可以发现,检查许可证的关键函为

strcmp
在这里插入图片描述


strcmp函数是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值
1
3. 对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,找到Flag1值并提交;
在ida里按下shift+f12就能找到程序里的字符串

在这里插入图片描述

在这里我们可以看到程序内所有的字符串
flag字符串能在这里看到的,但我没写flag字符串在程序里,我们进入下一题

4.对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,尝试破解该二进制文件,将注册成功后的回显信息作为Flag值提交;
不用破解也可以,之后我会将该如何破解,还是按下shift+f12

在这里插入图片描述

注册成功后的回显信息为:

Access Granted!
1
5.对靶机服务器场景桌面上的PE01.exe二进制文件进行静态调试,将该激活所需的许可证码作为Flag值提交;
还是按下shift+f12

在这里插入图片描述

激活所需的许可证码为:

AAAA-Z10N-42-OK

因为题目没有叫我们动态调试程序,就只叫我们静态分析,所以字符串都是写死在程序的rodata段里,按下shift+f12慢慢找即可

猜你喜欢

转载自blog.csdn.net/qq_48609816/article/details/125862449