buuctf reverse3

前言: 学习笔记。

常规思路:下载 解压 查壳。

32 IDA Pro打开。

常规思路:>>>查找字符串 >>>main

① base64 input?

② A~Z a~z 0~9 +/=

所以这是base64的加密?

 

ok,不是变异的base64 【变异的如下】

回顾正题,东点点西看看。

把认识的给转了。

正向分析:

大意就是:

输入的字符进行某某算法

再把算法之后的字符 进行循环+j的操作

最后再和 str2进行比较。

逆向分析:

由正向分析可以知道,str2的值就是加密之后的值。

所以,逆推回去,从下往上执行(通过已知str2)进行逆向。

C脚本思路:(python没用习惯)

①先逆回 D【j】+j  >>>Str2【j】-j       

【注意:往回推时 是从最后一位往前推(逆向) 而不是 0 1 2 3 ...n(正向) 】

②再逆回那个某某算法。

前置:保险起见,,,= = 把str2转成 hex 或者 dec 。。。【原因:看xor的wp。。。】

选中str2字符  shift+e 

C逆向脚本>>>①

由题意可知是base64加密(猜测嘛)>>

所以 ”sub_4110BE()“ >>>应该就是base64算法加密的实现。感兴趣可以去学习、了解原理。

OK 知道算法了(base64),直接查(在线工具、CyberChef、随波逐流等工具)>>>

为什么不写脚本? 不会!

python可以直接使用库函数。但是C没有现成的。要自己定义函数写....

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值