buuctf reverse1

前言:做题回顾。

下载后,解压并进行查壳->常规做题操作。

64bit ->>用64 IDA Pro打开。

程序入口点,不管用。

常规步骤:先进行查找字符串(shift+F12),再进入main函数观察。

双击这句话,进入到下图。

再双击->>>

(进入后如图所示,这是汇编代码。。 不熟悉可以按F5 将其转变为C语言的伪代码。

如下:

分析猜测函数名:

        ①sub_1400111D1(“   ”) 猜测是printf()【输出函数类型。】--->>>按”n“键可以改函数名字。

        ②sub_14001128F(“   ”)猜测是scanf() 【str1是数组(上面有写) 所以可以不用  " & "。

正向分析:(“/”键可以进行注释操作。)&&(双击str2可以查看它的值。)

tip:如果对 ASCII码 数字不敏感 可以 【先选中】>>> 【再加R键】转变为 ASCII码。

方法一:肉眼观察!!

所以,综上。:

【所以可以得知:也就是我们的flag】str1= {hell0_w0rld}

【验证】可以代入程序验证:(win+R > 输入:PowerShell >>>将reverse_1.exe拉入后回车。)

输入我们的 str1>>> {hell0_w0rld}

验证成功。

方法二:写脚本 T ` T 

= =

因为我是锻炼我的写脚本能力所以,咱去写脚本实现输出flag。

(python不太熟悉,忘了。。。所以用C语言去实现该脚本。)

/*脚本思路:
       由题意可知 str2的值
       以及str1表示为输入的值>>>也就是我们的flag

       str2经历了》》if ( Str2[j] == 'o' ) 的判断和满足其判断后的操作。
       所以,我们只需要重走一遍该操作即可。

       原因:按照原程序执行顺序,是先执行 scanf()上面的操作
       ,再比较判断str1【输入的值】和str2【变形之后的值】是否相等。

       可得知>>> str2的变形(o->0并没有一开始就变形,而是在程序启动后才变形的。)

       */

ok。完成第二次写wp 哈哈哈哈哈~那咋了QAQ(快速靠近)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值