[安洵杯 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博客

这篇博客有个这个图

 我也理解不到,记住吧

下一题!

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
在 [安全攻防进阶篇] 中,有关于逆向分析的教程可以帮助你了解如何使用OllyDbg逆向CrackMe程序。 OllyDbg是一种常用的逆向工具,可以用于分析和修改程序的执行流程和内存。使用内存断点和普通断点,可以在程序执行过程中捕获关键的代码位置,帮助我们找到CrackMe程序的OEP(Original Entry Point),即程序的入口点。 在 [安全攻防进阶篇] 中还有关于逆向分析两个CrackMe程序的详细教程,包括逆向分析和源码还原的步骤。这些教程将帮助你理解逆向分析的基本概念和技巧,提升你的安全能力。 如果你想深入学习如何使用OllyDbg逆向CrackMe程序,可以参考这些教程。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [[安全攻防进阶篇] 六.逆向分析之OllyDbg逆向CrackMe01-02及加壳判断](https://blog.csdn.net/Eastmount/article/details/107777190)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [逆向crackme之ESp定律脱壳](https://blog.csdn.net/qq_58970968/article/details/125357834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Nickname

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值