type
status
date
slug
summary
tags
category
icon
password
RC4加密
解题大致过程
题目大致如下:
A为输入流(flag)解密后得到B.
方法1
搓脚本去逆B得到A,该方法较为直接。
方法2
将B的十六进制(hax值)paste到A中,通过动态调试来实现B==> A
详细操作过程
以下为一道例题:
题中我们已知key,和cipher[32]的数组
题中的关键代码为
在关键函数中出了input其他参数皆为已知量
以下为关键函数的内部
i,j,k的值和input同样无关,仅仅是通过已知量S来进行的,同样可以将i,j看作是已知量,则唯一用到input的是以下的这串异或操作
其中将我们输入的input看作明文,密文ciphertext则是input^k^S得来的。这种简单的异或操作就是RC4加密,我们只需将加密得到的ciphertext赋给input用INPUT表示的话,那么有:
所以我们只需将ciphertext的值赋给input,再次得到的密文就是最开始输入的input即为flag
操作过程
得到ciphertext的十六进制的值
通过同态调试停住(停在RC4加密所对应的函数那),去看cipher[i]内存所对应的值
得ciphertext = "37276567FD7F00006400690073006B0056006F006C0075006D00650034005C00"
调试
随意输入32位
将ciphertext的值paste到input上
然后F8步过这个函数
然后得到的密文ciphertext位input得到flag
- Author:Albert1x
- URL:https://albert-1x.top//article/9606251f-ade1-4a59-bf3e-cddd9445df69
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!