网络空间安全 二进制逆向实验 寻求flag

本文详细介绍了lab1的四个逆向工程题目,包括理解程序的内存布局、数学计算、字符串比较逻辑以及二进制修补。通过分析汇编代码,逐一解密flag,涉及知识点包括小端模式识别、异或运算和数学运算在逆向中的应用。最终成功解出所有flag并验证答案,展示了逆向与二进制安全的基本技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验内容

lab1包含4个题目,需要对4个程序进行逆向。逆向结果为一个flag开头的可见字符串,正则形式为:flag{[0-9a-zA-Z]+}。

● 其中lab1-1是简单的逆向入门用于熟悉软件和环境,lab1-2和lab1-3涉及到数学计算,需要通过基本的
数学运算性质进行逆计算得出flag,lab1-4需要对原有的二进制进行一些修改,之后才能进行正常的输
入输出。
● 每个程序在输入正确的flag后会显示good,如果flag不正确将会输出error flag。
样例
● $ ./lab1-1
● 123
● error flag
● $ ./lab1-1
● flag{XXXXXXXXXXXXX}
● good!
● $
实验文件链接:https://pan.baidu.com/s/1sMm8KQTKll2cRW-ZN0u-sw
提取码:xlxc

实验步骤

1、lab1-1
阅读反汇编后的汇编码,从下图可以看出,程序将字符串存放于栈中,根据输出结果,考虑ASCII码转换,66h是f的十六进制,参照下图,最先被移进栈的八个字符,它们的十六进制为6C65577B67616C66h可以看到66是所有字符中地址最低的,它也是低字节,所以这是低地址放低字节的情况,因而运行程序的机器是小端模式。该题考察的是大端模式与小端模式。我们将整个字符串都变为大端模式可得如下字符串:666c61677b57656c636f6d655f74305f73656375726974795f6330757273657d
参照ASCII码转换表可得出题目答案࿱

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值