- 博客(75)
- 收藏
- 关注
原创 [crackme]033-dccrackme1
思路2:GetDlgItemText断点,也断不下。思路1:字符串搜索,找不到界面字符串。这就很简单了,直接写注册机。先 check 后暂停。一直追到一个可疑的循环。开始分析这个程序的算法。
2025-10-30 22:11:01
165
原创 031-Cruehead.1
a1是 sub_4013D8函数的输出结果。猜的,或者动态调试,这个反汇编不准确,看不出来。先判断输入不能小于 A,如果是小写字符,就转为大写,完成后将大写字符累加,最后结果异或0x5678。将输入的数字字符串转为对应数字,然后异或 0x1234。将小写转为大写,最后累加各个字符的ascii码值。最后还发现这个函数反汇编不准确,少了一段。判断 v7 和 a1 相等就成功。将输入的数字字符串转为对应的数字。1、进入 sub_40137E。2、进入sub_4013D8。2、serial处理函数。
2025-10-22 21:29:33
256
原创 [crackme]030-Acid Bytes.4
循环结束后做了一堆操作,有用的就是 用户名长度乘以2,加到循环结果里面,随后将结果转为十进制字符串。每次都是取出一个用户名字符,再乘以2,加起来,一共循环 6 次。用upx工具脱壳,或者esp定律脱壳就可以了。UPX 0.89的壳。
2025-10-21 21:12:08
380
原创 [crackme]029-figugegl.1
很简单,就是取用户名和serial,将serial中每个字符依次减去01234…每次减去之后和用户名对比,到最后相等则成功。
2025-10-20 22:20:24
245
原创 [crackme]028-ArturDents-CrackMe#3
但在win11上脱壳之后,用工具就是修复不好IAT,就是跑不起来。每折腾了,直接分析算法。
2025-10-16 22:48:47
393
原创 [crackme]027-MexeliteCRK
就是对比输入的字符串是否等于Benadryl。找到对比的call,nop掉jcc就可以。入的字符串是否等于Benadryl。
2025-10-11 21:32:13
180
原创 [crackme]026-KeygenMe
计算的最终结果要和输入的字符的 ASCII 码值相等,并且是按照小端序。0x40133C地址处是一个关键跳,在这里直接nop就可以完成爆破。
2025-10-10 23:20:09
359
原创 [crackme]025-CRC-32crackme
因为这题目说了时crc32校验,直接搜索校验算法:使用python内置库。只需要在最后看esi的值就可以了。
2025-10-09 22:47:19
192
原创 [crackme]024-reverseMe
这个程序,创建文件,然后读取 Keyfile.dat 文件,遍历文件内容,如果字符串包括8个以上 “G” 字符就成功。
2025-10-09 19:36:14
144
原创 [crackme]023-traceMe
在循环里从输入的第4个字符开始依次相乘,乘数来自 0x405030 固定的数据,如果输入的用户名从第4个开始往后的字符个数也大于7的话,算法会再从头使用 0x405030 里的数据进行相乘。在获取用户输入内容位置处下断点,发现程序会调用 0x401248 函数判断用户输入内容,并根据返回值判断是否提示错误。所以在判断的位置爆破即可成功。进入 0x401248 函数看看算法。
2025-10-08 22:27:32
322
原创 [crackme]021-DIS[IP]-Serialme
在汇编理解时,输入的用户名在 bl 低位,由eax 循环生成的在 bh 高位。但是在输入成序列号时,汇编代码里一次获取两个序列号字符,是小端序,顺序将会颠倒,所以 two_s 才这么拼接的。先取序列号放在一个高地址位置,再取用户名放在一个低地址位置这就存在一个问题,如果用户名过长将会覆盖到序列号。所以用户名长度不能超过5个(不包括字符串0x00)上面很多都是获取输入框内容,和输入字符串长度。
2025-10-07 00:58:59
246
原创 [crackme]020-cosh.3
第二部分:name和serial依次和ecx异或,ecx第一次从1依次累加,第二次从0xa依次累加。很简单,直接将"YOU DO IT" 字符串上的jmp NOP掉就好了。第一部分:获取字符串长度和内容,判断字符长度是否大于5。
2025-10-06 00:37:25
202
原创 [crackme]019-CrackMe3
就是对比输入的字符串是否跟常量字符串相等,做了两次字符串比较。脱壳2——upx脱壳机。每次推出都会弹出提示框。脱壳1——ESP定律。
2025-10-05 23:27:09
252
原创 [crackme]018-crackme_0006
mul ecx 在累乘之后,高位存放在 edx,低位在eax,如果高位 edx 有值,会将edx 加到eax的低位上,所以输入的用户名累乘相加只要在4字节以内就没问题,如果溢出 4 字节就是另外的情况。这段程序在获取磁盘的序列号,然后进行了逻辑左移,循环左移的操作。在 0x004011D0 下个断(程序能运行起来,输入信息后check后断下)随后使用系统 API GetDlgItemTextA 获取输入的用户名,直接使用的是磁盘序列号。
2025-10-02 23:33:52
321
原创 angr基础学习
咱用 0x8048697 开始执行,调用scanf的栈就不用管了,保证handle_user函数中参数与ebp之间的偏移正确就好了,handle_user函数里有两个参数[ebp+var_10]和[ebp+var_C],所以把esp先抬高 0x8 ,后面这将符号化的值压入栈,符号化的值就在[ebp+var_10]和[ebp+var_C]位置了,后面就可以直接使用了。在这题中,我们之后要向栈中push符号值,并且通过ebp索引这些符号值(比如[ebp+var_C]),所以我们得让ebp有一个正确的初值了。
2025-03-29 16:25:20
1134
原创 【逆向工程核心原理:API钩取】
运用在windows10 32bit Debug/Release。64bit参数结构、寄存器名字不同,需要修改才能使用。
2023-04-04 10:27:55
937
原创 【逆向工程核心原理:DLL注入】
在注册表编辑器中,将要注人的DLL的路径字符串写人AppInit DLLs项目,然后把LoadAppInit DLLs的项目值设置为1。3、重启系统会发现所有加载user32.dll的进程都注入了myhack2.dll,如果打开notepad还会启动 IE。实验成功前提:notepad的kernel32.dll和InjectDll的地址一样。编辑修改AppInit_ DLLs表项的值,输人myhack2.dII的完整路径。被注入的DLL就干了两件事,一个是输出了一串字符串,二是下载了一个网页。
2023-03-29 14:58:32
961
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅