欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > [安洵杯 2019]crackMe

[安洵杯 2019]crackMe

2025/6/8 9:42:52 来源:https://blog.csdn.net/wcj126/article/details/140352207  浏览:    关键词:[安洵杯 2019]crackMe

大佬wp:

[安洵杯 2019]crackMe - Moominn - 博客园 (cnblogs.com)

 首先肯定是运行

(运行这个耗费了我好久,一直说我缺失什么文件,我giao,最后是问学长要的dll文件)

输入类型,然后提醒我hook

没搞懂,先分析吧

F12找到right,reverse--从结果来推

cmp

str2= 1UTAOIkpyOSWGv/mOYFY4R!!

上调找到这里

再换表

对base64的表进行了移位处理

这里我也没看懂,看wp才知道,这里是说对不足的补全为!(之前是补全为=)

输入字符两两swap

SM4

base64表大小写转换

 这是我们逆向推出来的流程

我们现在重新来理一下

首先是base64被换表了----输入字符移动----输入字符swap---SM4加密---base64表大小写转换---base64加密为str2

import base64
ans1='1UTAOIkpyOSWGv/mOYFY4R!!'
ans=''
for i in range(0,len(ans1),2):ans+=ans1[i+1]ans+=ans1[i]#这里先把最后一步的字符转换给完成了
table='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
#大小写转换
new_table=''
for i in table:tmp=ord(i)if 97 <= tmp <= 122:new_table += chr(tmp - 32)elif 65 <= tmp <= 90:new_table += chr(tmp + 32)else:new_table+=chr(tmp)
print(new_table)
renew_table=''
renew_table=new_table[24:]+new_table[:24]
print(renew_table)
#得到新表
arr=[]
for i in range(len(ans)-2):arr.append(renew_table.find(ans[i]))#这一步要了解base64具体过程,这是找到在base表里面的对应下标,即明文的前三位数字
enc=''
for i in arr:enc+=table[i]#这里又回到正常的base64,因为这里!!不好操作,我们换回原来的base64加上==,这样方便操作
enc+='=='
print(enc)
tes=base64.b64decode(enc)
print(list(map(hex,tes)))#记住吧,我也不会,哈哈
a=['0x59', '0xd0', '0x95', '0x29', '0xd', '0xf2', '0x40', '0x6', '0x14', '0xf4', '0x8d', '0x27', '0x69', '0x6', '0x87', '0x4e']
for i in a:print(hex(int(i,16)),end=',')
key='where_are_u_now?'
#剩下交给厨子了,sm4加解密我是真的不是很了解

 SM4foRExcepioN?!

至于讲的什么VSH,SEH,UEH,我感觉不出来,哈哈,应该是太菜了

我就慢慢回调就写完了

[安洵杯 2019]crackMe-CSDN博客

这篇博客有个这个图

 我也理解不到,记住吧

下一题!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词