2019华南师大CTF新生赛maze
2019华南师大CTF新生赛maze链接:https://pan.baidu.com/s/1oCQGIbbtCk0RfrrORiE21g提取码:tuyt
分析1.首先查壳发现无壳
然后用IDA打开,去查找有用的东西
能发现这个flag是与if的那个语句有关,于是去看看check函数在干嘛
然后我们去maze这个地方,看看是些什么
找到地址后,去另一个窗口看看
然后就能知道这是一个13*13的迷宫
解决方法于是我们可以画出列出迷宫形式
**************@************-************-***-**-*****--*****-*****-***#**-*****--**----******-*****-******-****--******---**-*******-*-----******-------*****************
这样很容易得到
flag{sssssdsssddsdddwwdwwaaaw}
BUUCTF xxor
题解BUUCTF xxor分析首先用exe查壳,发现它是64位,于是用IDA打开看看,按F5去看反汇编代码
发现它要输入6次,然后看到下面的for循环,这个上面是把v6的东西都放在dword_601078里头,然后进行sub_400686,于是我们点进去,看看这个函数要干嘛。
然后可以发现这是个魔改的tea加密,然后返回,看最外面怎样得到flag
说明要得到flag一定要使这个函数正确,才可以得到flag,那么我们点进去看这个函数在干嘛
发现他这里刚好给出了我们6个a数组的值,与上面的tea加密的函数里头的v3和v4需要的值相对应,于是就能够知道这个会是一个明文
那么现在就需要找到密匙就能解出来了
在前面可以看到这个a2于是我们点进去,看看它是个什么东西
于是我们很容易得到密匙是2 2 3 4
那么就可以写脚本了
#include <iostream>#pragma warning(disable:4996)using namespace std;int main(){ long long a[6] = { 3746099070, 55 ...
RC4
RC40x01 简介RC4是对称加密算法,通过密钥key和S盒生成密钥流,明文逐字节异或S盒,同时S盒也会发生改变。所以加密与解密使用了相同的函数和密钥K。RC4加密的强度主要来源于密钥的安全性,如果密钥泄露,则能直接解密出明文。
0x02 RC4算法分析第一步:初始化s盒然后得到新的s盒(密匙流)
/* 得到S-box */void rc4_init(unsigned char*s,unsigned char*key, unsigned long Len){ int i=0,j=0; char k[256]={0}; unsigned char tmp=0; for(i=0;i<256;i++) { s[i]=i;//初始化s盒 k[i]=key[i%Len]; } for(i=0;i<256;i++) { j=(j+s[i]+k[i])%256; tmp=s[i]; s[i]=s[j];//交换s[i]和s ...
攻防世界mfc逆向-200
攻防世界mfc逆向-200分析首先查壳
32位有VM的壳,那就先不用IDA,这是一个exe的程序,点开之后是这个样子
然后结合题目所给的提示mfc,然后就想到mfc逆向且出来就是一个窗口,然后就用spy++(窗口专用工具)去看一下
然后拖动这个到程序中的地方
这里的类没有东西,然后换一个地方查找
这里出现了类,然后打开xspy(mfc逆向工具去)去看看
同样是使用这个东西去查找
然后对下面的东西去分析
WM_SYSCOMMAND(0112):当用户从 “窗口 ”菜单中选择命令时,窗口会收到此消息, (以前称为系统或控件菜单) ,或者当用户选择最大化按钮、最小化按钮、还原按钮或关闭按钮时
WM_PAINT(000f):当系统或其他应用程序发出绘制应用程序窗口部分的请求时,将发送 WM_PAINT 消息
WM_QUERYDRAGICON(0037):发送到最小化的 (标志性的) 窗口。 窗口将由用户拖动,但没有为其类定义的图标。 应用程序可以将句柄返回到图标或游标。 当用户拖动图标时,系统会显示此光标或图标
然后那个0464并没有被定义,那就给它发消息,看看它会给个什么回复 ...
去花指南
去花指南首先,关于花指令的问题我在做题中有自己的一些看法与解题的方法,然后最近一直有朋友问我如何去花,这里就给大家分享一下我的经验吧!
这里我用一个花指令比较多的题目边讲解,边教大家(也许有的地方也不对,我太菜了)
2022长城杯 rabbit_hole_release.exe
一般我做题都是从main函数开始的
这里如果看到了这个报红的地方就双击它,然后就会带你到那个错误的地方,接着你看到一些跳转指令比如JZ JNZ之类的,这里是jmp也是跳转指令,后面有一个ptr loc_401709+1,一般情况下就直接nop掉它
然后这个题目的主函数部分有很多数据没有变成汇编的形式
遇到这种情况一般都是按C去强制转换成汇编代码,这题我是将整个main函数的内容全选然后按C去转换
然后就会出现新的花指令,你就重复之前的步骤一个个nop掉,然后选中整个main函数按P进行声明再F5看一下伪C代码
这里有报红,你就单击爆红的地方然后按Tap键去找到它的汇编代码
这是0x401783处的报错,首先看到这个不要直接nop,先按C看能否转换
这里发现是可以进行转换的,然后再按F5返回伪C代码 ...