buuctf re findKey

参考:http://t.csdnimg.cn/hUKRJ

参考:http://t.csdnimg.cn/kIk4i

32位,ida打开

f5,先不管呢

winmain函数

看看字符串

进到flag那里,没法反编译

寻找

看汇编,发现两个一样的push(不理解怎么找到的,毕竟好多好多代码)

应该是花指令

Nop掉第二个,然后p,f5,

直接右键Nop不知道和下图有啥区别,应该问题不大吧

分析发现,一共两个主要函数

先进入1005函数

写个脚本

cpp 复制代码
#include<stdio.h>
int main()
{
	int i,j,v5=2,a3=32,result;
	char a1[]="SS";
	char a2[]="0kk`d1a`55k222k2a776jbfgd`06cjjb";
 
 	for(i = 0; ; ++i )
 	{
  	result = i;
   	 	if ( i >= a3 )
     	break;
    *(i + a2) ^= a1[i %2];
  }
 
	puts(a2);
	return 0;
}

运行得到

提交发现错误,再分析另一个函数

哈希标识符:ALG_ID (Wincrypt.h) - Win32 apps | Microsoft Learn

函数介绍:(全都是英文,看不懂QAQ)

CryptCreateHash function (wincrypt.h) - Win32 apps | Microsoft Learn

具体参考:http://t.csdnimg.cn/rd5mJ

CryptCreateHash 函数的参数包括:

hProv:加密服务提供者的句柄。

Algid:指定要使用的哈希算法的 ALG_ID 值。

hKey:如果哈希算法是带密钥的,则传入密钥的句柄;否则为0。

dwFlags:标志位,通常为0。

phHash:指向新创建的哈希对象句柄的指针。

CryptHashData 函数的参数包括:

hHash:哈希对象的句柄。

pbData:指向要进行哈希处理的数据的指针。

dwDataLen:要进行哈希处理的数据的长度。

dwFlags:标志位,通常为0。

CryptGetHashParam 函数的参数包括:

hHash:哈希对象的句柄。

dwParam:指定要获取的哈希参数。

pbData:指向存储参数数据的缓冲区的指针。

pdwDataLen:指向存储参数数据长度的变量的指针。

dwFlags:标志位,通常为0。

MD5解密网站:MD5在线加密/解密/破解---MD5在线 (sojson.com)

然后就是两种不同方法:

方法一动态调试--有待学习

把string1改成123321

运行所给程序

方法二:继续分析函数

下面还有一个函数,和上面那个异或的是一个函数

第一个-492没有找到对应的字符串,所以推测是刚刚得到的123321,要不然前面也没啥用了

后面那个字符串,数据没办法一次全部导出来,也可能我打开方式不对,就一个个敲得,刚刚把5B写成58了,导致i变成j了,服了QAQ

运行即可

cpp 复制代码
#include<stdio.h>
int main()
{
	int i,j,v5=6,a3=19;
	char a1[]="123321";
	char a2[]={0x57,0x5E,0x52,0x54,0x49,0x5F,0x1,0x6D,0x69,0x46,0x2,0x6E,0x5F,0x2,
	0x6C,0x57,0x5B,0x54,0x4C};
 
 	for(i = 0; ;i++)
 	{
   	 	if(i>=a3)
     	break;
    *(i+a2)^= a1[i%6];
  }
	puts(a2);
	return 0;
}

flag{n0_Zu0_n0_die}

相关推荐
m0_7482382721 分钟前
项目升级Sass版本或升级Element Plus版本遇到的问题
前端·rust·sass
G佳伟1 小时前
【亲测有效】百度Ueditor富文本编辑器添加插入视频、视频不显示、和插入视频后二次编辑视频标签不显示,显示成img标签,二次保存视频被替换问题,解决方案
chrome·百度·音视频
升讯威在线客服系统1 小时前
如何通过 Docker 在没有域名的情况下快速上线客服系统
java·运维·前端·python·docker·容器·.net
AsBefore麦小兜1 小时前
Vite vs Webpack
前端·webpack
LaughingZhu1 小时前
PH热榜 | 2025-02-23
前端·人工智能·经验分享·搜索引擎·产品运营
道不尽世间的沧桑3 小时前
第17篇:网络请求与Axios集成
开发语言·前端·javascript
diemeng11194 小时前
AI前端开发技能变革时代:效率与创新的新范式
前端·人工智能
bin91536 小时前
DeepSeek 助力 Vue 开发:打造丝滑的复制到剪贴板(Copy to Clipboard)
前端·javascript·vue.js·ecmascript·deepseek
晴空万里藏片云7 小时前
elment Table多级表头固定列后,合计行错位显示问题解决
前端·javascript·vue.js
曦月合一7 小时前
html中iframe标签 隐藏滚动条
前端·html·iframe