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}

相关推荐
前端开发爱好者3 分钟前
支持 110 种文件预览!兼容 Vue、React、Svelte!
前端·javascript·vue.js
陈随易1 小时前
VSCode古法神器fnMap v9开发故事
前端·后端·程序员
大家的林语冰1 小时前
👍 尤大重学 Webpack,Vite 8.1 再进化,打包模式复活!
前端·javascript·vite
张元清1 小时前
React useIsomorphicLayoutEffect:修掉 SSR 下的 useLayoutEffect 警告(2026)
前端·javascript·面试
PBitW2 小时前
直接让GPT每日训练我!!!😕😕😕
前端·javascript·面试
爱勇宝2 小时前
我给自己做了一个新标签页:不登录、不打扰、打开就能用
前端·html·浏览器
Ausra无忧3 小时前
记录在公司把单服务器升级成多服务器架构流程
前端·后端·架构
极客密码3 小时前
来看看我用Codex两周时间vibe coding的这款轻量级的剪贴板管理应用,win/mac系统均可用
前端·ai编程·vibecoding
前端双越老师3 小时前
Agent 实战: 智语 + baoyu-skills 自动发布文章到公众号
前端·agent·全栈
hunterandroid3 小时前
Jetpack Compose 入门:用声明式 UI 写 Android 页面
前端