![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
REVERSE
wakappxc
wakappxc
展开
-
[网鼎杯 2020 青龙组]jocker
我们从这里也可以看出来它把str传给了Destination但是并没有利用到Destination所以也没有什么意义,而真正在flag则藏在下面了。我们回到主函数处,按tab键转换为汇编窗口,往下翻找到call 指令部分,进行修复sp指针偏移值。根据这里所谓的提示我们大概就能知道这里的flag就是假的,但是我们来试一下?v2是我们这里的值 我们可以shift+e或者右键如下。点击encrypt发现有错误提示。然后在下面进行提取就好了。非常明显的假flag。原创 2023-11-28 19:51:46 · 42 阅读 · 0 评论 -
[专项训练]RC4
RC4分为两个部分 一个是初始化 第二个就是加密或者解密了载入IDA以下是对这个程序进行的分析。原创 2023-11-25 17:47:50 · 58 阅读 · 0 评论 -
[GDOUCTF]tea
与常规的tea相比这里的do while里面的tea加密外面还有一层for循环来处理sum。不能直接以字符输出所以我们需要把我们输出的十六进制以字符串的形式进行输出。此处就是对加密的整体实现所以我们可以写tea的解密脚本来将其解密出来。所以我们也要对其进行处理 从最后往前进行处理。找到字符串窗口之后交叉引用再F5反编译。我们可以很容易看到更改的内容。修改一下名字这样更好看一点。而这里就是加密的密文了。原创 2023-11-25 11:12:13 · 78 阅读 · 1 评论 -
[HGAME 2022 week1]easyasm
考点: XOR ASM C++push ax 是一条汇编指令,它将 ax 寄存器的值压入堆栈。下面是对这条指令的详细解释:assemblyCopy codepush ax: 将 ax 寄存器的内容(16位值)推送到堆栈的栈顶。在堆栈中,数据是以先进后出(LIFO,Last In, First Out)的方式存储的,这意味着最后压入堆栈的数据会成为第一个弹出的数据。这条指令在这段代码中的作用是保存 ax 寄存器的当前值,以便稍后从堆栈中弹出并使用。原创 2023-11-21 16:02:47 · 99 阅读 · 0 评论 -
[院赛2023]消失的眼角膜
unity逆向方法:unity游戏的主要逻辑、脚本 都在Assembly-CSharp.dll,因此我们可以使用dnspy之类的工具就能够轻易的反编译出源码。同理我们也可以选择通过游戏的判断机制 人物碰到刺就会死亡 如果我们修改这个判断机制也同样是可以达到目的到达下一关最后拿到flag。而前面对密钥也要一定的处理 但是已经是处理完了之后 所以我们可以直接通过动态调试来把我们所需要的值来进行提取。再依次查看的时候发现这里直接出现了flag代码的大意是通关到第五关可以直接拿到flag并且是没有加密的。原创 2023-11-21 17:10:13 · 64 阅读 · 0 评论 -
[HUBUCTF 2022 新生赛]help
我们shift+e讲这里的数据提出来放入我们要写的脚本中 我们先看check里面。寻找最短路找出答案 最后不用忘了进行MD5加密哦~我们点进去 CreateMap()这个子程序。原创 2023-11-21 21:25:11 · 132 阅读 · 0 评论 -
[院赛2023]babyAES
而前面对密钥也要一定的处理 但是已经是处理完了之后 所以我们可以直接通过动态调试来把我们所需要的值来进行提取。前面就是flag:flag{27a56058-5071-46de-bb43-c76bbe18}处理的点就是这两个函数 对密钥进行处理然后存入v12 再进行对比得出答案。在此处单步(F8)走到call memcmp就行了然后依次提取数据。按下回车键之后我们可以知道此时ida已经停了下来了。我们在此处进行下断点并用ida进行动态调试。根据题意我们可以知道是这个是AES加密。原创 2023-11-22 03:29:24 · 93 阅读 · 0 评论 -
[院赛2023]物转星移几度秋
通过这里我们可以知道首先是通过一个 rc4_init 然后 base64_encode最后与checkey进行判断。运行到此此时我们的sboxs已经出来了但是我们先F7单步进入base64加密里面。并在虚拟机中输入足够长的密码 因为后面会进行一个循环换表的过程需要足够的长度。所以只要我们输入正确的密码就可以拿到shell得到flag。观察特征我们可以知道他是每四个进行一个换表最后整合出来的。所以我们的思路就很明显就是通过远程动态调试来一步一步看。大概就是一个换表的base64然后进行与。原创 2023-11-22 04:15:47 · 37 阅读 · 0 评论 -
[HGAME2023]math
savedregs其的地址是[rsp+180h]所以&savedregs-368为[rsp+10h]这时候我们的思路就是写脚本一个一个把我们的v8也就是所输入的flag一个一个算出来。采用python的Z3约束求解(顺便学习一下这个知识)观察程序可以把这个类型改为char。原创 2023-11-24 11:37:04 · 47 阅读 · 0 评论