工程项目训练_计算机病毒分析与设计_期末考核

解题报告


第一题:以任意一种方法对“1.exe”手动脱壳。

1、将目标程序“1.exe”利用分析工具OllyDbg打开,如下图所示:

2、单步F8,此时观察到仅ESP为红色,故采用ESP定律法脱壳。右键ESP,选择“HW break [ESP]”,如下图所示:

3、然后按F9快捷键,运行程序,来到如下页面:

4、按F8单步两次来到`retn`,如下图所示:

5、然后再次单步运行,跳转到新位置,好像跟刚才一样,但是左侧的地址并不一样,继续采用ESP定律,如下图所示:

6、再次执行重复刚才的操作,多次重复后成功来到OEP,如下图所示:

7、此时按“Ctrl + A”,然后脱壳,如下图所示:

8、点击脱壳,如下图所示:

9、打开脱壳后的程序,会有一个报错,不能关,否则程序就不会运行。然后用修复导入表,最终得到脱壳并修复了导入表的EXE文件。如下图所示:

10、然后依次点击,如下图所示:

11、得到脱壳后的程序,如下图所示:

12、结果如下图所示:


 第二题:输入username为20241217,使用逆向分析工具分析“2.exe”,找到正确的password。

1、程序静态分析准备

将目标文件“2.exe”导入IDA Pro 32位版本,定位并打开main函数,如下图所示:

2、初步代码分析

(1)利用快捷键F5查看函数伪代码,如下图所示:

(2)分析定位到关键函数`sub_401005`,如下图所示:

3、输入处理分析

(1)跟进`sub_401005`函数,如下图所示:

(2)确认该函数负责处理username和password的输入逻辑,如下图所示:

4、验证逻辑分析

(1)继续跟进另外一个函数,如下图所示:

(2)此处应该就是对username和password做校验的地方,如下图所示:

(3)从之前的分析可以得到:a1是username,a2是password。目前a2和a1的值未知,但是等号两边的另外的变量是已经定义好的。

5、关键变量分析

(1)通过双击查看相关变量定义,如下图所示;

(2)发现两个变量定义在一起,如下图所示:

(3)再回头看,如下图所示,可知a1的值是“20241217”,a2的值等于两个变量异或的结果:

6、密码求解

编写Python代码计算异或结果,得到a2的值为“c23cb30d”,如下图所示:

7、验证结果

启动“2.exe”程序输入测试,验证通过。如下图所示:

所以:

username为20241217

password 为c23cb30d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值