TypechoJoeTheme

霍雅的博客

登录
用户名
密码
/
注册
用户名
邮箱

re练习笔记2 动态调试rc4

2025-03-12
/
0 评论
/
138 阅读
/
正在检测是否收录...
03/12

2024蓝桥杯rc4


简单查看,可以发现没有输入,
进入sub_401005里面是一个 return sub_401020(a1, a2, a3, a4);

根据题目名称RC4所示和代码特征判断是RC4算法,不用管有没有魔改
因为没有对我们的输入进行检测,而是直接把算出的值放在寄存器里
所以直接下断点动调

v5就是flag

babyalgo
简单分析一下,可以判断数组enc是密文
scanf做了一个长度判断要等于45
v5复制了一个字符串
可以猜测v5就是key

直接断点调试

因为要满足输入的长度是45,所以我们直接构造45个a

把enc地址的值取出来

写脚本改input在栈上的值改成密文

f8进入到rc4函数,再进入到sub_400753函数

在长度比较下断点

正常是不用到rc4函数里下断点的,但是这个密文有点特殊
这个密文有个0x00的值,而strlen这个函数,他检测到0就会跳出并返回长度

  0xC6, 0x21, 0xCA, 0xBF, 0x51, 0x43, 0x37, 0x31, 0x75, 0xE4, 
  0x8E, 0xC0, 0x54, 0x6F, 0x8F, 0xEE, 0xF8, 0x5A, 0xA2, 0xC1, 
  0xEB, 0xA5, 0x34, 0x6D, 0x71, 0x55, 0x08, 0x07, 0xB2, 0xA8, 
  0x2F, 0xF4, 0x51, 0x8E, 0x0C, 0xCC, 0x33, 0x53, 0x31, 0x00, 
  0x40, 0xD6, 0xCA, 0xEC, 0xD4

所以如果不管这个长度的话,我们就会出现flag显示不全

F8步过这个函数,可以发现他的值确实只有27h,转成10进制就是39

在hex view窗口按G输入这个地址

定位到这个27按F2改成2D再按下F2

可以确实看到这个值被改成2D,也就是45了

回到main函数下断点

运行查看V7的数值

n1book{us1nG_f3atur3s_7o_de7erm1n3_4lg0ri7hm}

朗读
赞(0)
版权属于:

霍雅的博客

本文链接:

https://huoya.work/bk/index.php/archives/221/(转载时请注明本文出处及文章链接)

评论 (0)

人生倒计时

今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月