160个crackme 持续更新(1\2\3\4\6\8\9)

最近感觉自己啥都不会吧,就算会也就是点皮毛,还是练的太少了,从160个crackme开始

慢慢来吧,从简单的开始

1.Acid burn

OD动态调试一下,靠字符串定位打断点,如下

跟进这个函数可以看到明文密码

next

2.Afkayas.1

直接对着字符串打断点,爆破

试试看写一下注册机

因为这程序是用vb写的,就没法用IDA了,只能看一下汇编

先再次执行,搜索字符串下断点,然后网上翻,慢慢找注册码生成的函数部分

注册码在这部分往下

可以看见先取出了我们的第一个字母

然后在这里生成了一个数字,应该是对应我们的输入会生成数字

我们继续单步执行,在过程中8NC多次出现,目前还不知道是什么意思

这里密码和我们之前对应生成的数字都出现了,然后底下会有一个strcat函数,会在数字前面加上AKA,那这里应该是最后生成密码的部分,那生成密码的函数体就是在这一段区间里了

那我们从402412push name开始分析,分析在注释里

这里就已经是780368,那之后无非就是加上了一个AKA

keygen

s=input('your name:')
length=len(s)
a=ord(s[0])
length*=0x17CFB
a+=length
#print(a)
serial=''
serial+='AKA-'
serial+=str(a)
print(serial)

3.AfKayAs.2

这题一开始会有个nag窗口来耗费我们的时间,我们首先考虑怎么去掉它

在OD里可以看见,这个程序依然是一个vb程序,vb里面有个消除nag窗口的方法叫做4C法,很神奇……本来想用resource_hacker的,但貌似vb不行

刚开始push的是4067D4,在数据窗口中往后移动4c

数据窗口处的值是406868,再次跟踪过去

是不是觉得有重复段,这些段对应的就是加载窗口,每段的第24个字节对应的是加载的顺序,我们nag窗口的加载顺序换到后面去,就可以直接忽略掉它了,我们把01和00互换就OK了

怎么下断点就不说了,我是靠字符串的,暂停的效果我觉得差不多

### 关于BUUCTF CrackMe挑战题解 #### 背景概述 BUUCTF是一个提供多种信息安全竞赛项目的平台,其中包含了众多关于逆向工程的题目。CrackMe类型的题目通常涉及对给定二进制文件进行反汇编、理解其逻辑并找到绕过保护机制的方法来获取特定的信息或实现某些功能。 #### 主要内容解析 对于名为`crackMe`的程序,在分析过程中主要关注几个方面: - **程序信息与题目分析** 对该程序进行了初步了解,确认这是一个典型的验证序列号的应用案例[^1]。通过静态分析可以发现程序的主要入口点位于`main`函数内,并且存在一个重要的子过程`sub_401830`负责处理输入的数据校验工作。 - **关键函数剖析** `sub_401830`作为核心部分承担着比较操作的任务,它接收来自用户的输入并与预设条件相匹配以决定是否允许继续执行下去。此环节还涉及到全局变量`byte_416050`数组的操作,后者保存了一些用于后续计算的重要数值。 - **动态调试技巧** 使用诸如GDB之类的工具可以帮助更直观地观察内部状态变化情况,从而更好地掌握整个流程走向。例如,设置断点监控指定位置处寄存器中的值或是内存区域的内容更新状况等行为均有助于深入探究问题本质所在。 - **求解方法论** 经过多轮测试后得知正确答案应当满足如下形式:当我们将字符串`welcomebeijing`按照一定算法转换成另一组字符再经过MD5散列之后所获得的结果即为目标Flag——具体表现为`flag{d2be2981b84f2a905669995873d6a36c}`[^2]。另外有提示指出最终所需的密码可以通过调整原代码里的`byte_416050`数组元素值得到,经推导得出应为`dbappsec`[^4]。 - **技术细节补充** ELF64作为一种广泛应用于Linux环境下的可移植对象格式,定义了一套完整的结构用来描述各种属性如段表项、节头表条目等等;这对于理解和修改基于此类架构构建起来的目标文件至关重要[^5]。 ```python import hashlib def calculate_flag(username, password): combined_string = username + password md5_hasher = hashlib.md5() md5_hasher.update(combined_string.encode('utf-8')) return f'flag{{{md5_hasher.hexdigest()}}}' print(calculate_flag("welcomebeijing", "dbappsec")) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值