buuctf reverse2

前言:做题笔记。

额 常规操作 不管三七二十一 解压就查壳 O,0? 

看不懂?

没关系 我也看不懂。。。

一般情况[一通乱说]>>反正你拉入64bit IDA Pro就对了  因为64bit可以兼容32bit的 一般不会出错。

进入之后 常规: shift +F12查找字符串 再进入main函数

这时,你可以东瞅瞅西看看啦,反正它给你看 0.o 

78h>>>转之后>>>  ' { ' 

所以?flag{hacking_for_fun}?

不管,去提交 QAQ 

OK, 不出意外错了(不嘻嘻) 

跟踪。汇编代码>>F5编译成C伪代码,, 额,我一般TAB键按照比较爽(嘻嘻)

认识的函数就 N键 改名字,不认识的,不认识。

进行正向分析:

方法一:肉眼观察。。。因为比较简单。。。

关键点转ASCII字符。

哦,strcmp类似 汇编cmp 返回值只有 0 或者 非0 (印象中是的) 0为F 非0为1 

当 flag = s2 时, strcmp(flag,s2) 会返回0 

if(!0) >>>if(True/1) >>执行 this is the right flag !  

(对不起,话痨了 ┭┮﹏┭┮)

所以最终s2 = {hack1ng_fo1_fun}

这个验证不了,直接提交验证吧 嘻嘻。

方法二:(锻炼写脚本)

一样 python 忘了。。 用C语言去实现,,,

思路:首先分析 关键的原代码 >>> 对*(&flag + i)的解读 (看进行正向分析:如图 0.o?)

额,这题和 reverse1 差不多一样。 解释的话,也差不多一样,看之前的去吧(我懒)

关键点:数组在内存中的寻址方式以及表达的格式。>>>IDA Pro是C伪代码.

OK写完,收工。第三篇!

  • 14
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值