逆向破解之160个CrackMe —— 016

CrackMe —— 016

160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序

CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 cracker,想挑战一下其它 cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破。

CrackMe简称CM。
程序下载地址: 点击我

来源 <-点击查看

编号作者保护方式
016bjanesSerial(VB5)

 

 

 

工具 

x32dbg

VB Decompiler Pro

开始破解之旅

ON.1

爆破方式

使用x32dbg打开016号程序

右键 搜索->当前模块->字符串 

我们看见了错误提示字符串地址00403A69和正确提示字符串地址00403AE9

我们进入错误提示字符串地址00403A69处向上查看

004039FE | 83C4 18                  | add esp,18                              |
00403A01 | 66:85FF                  | test di,di                              |
00403A04 | 75 1C                    | jne bjcm20a.403A22                      |跳转处 跳转到00403A22
00403A06 | 8B7D 08                  | mov edi,dword ptr ss:[ebp+8]            |
00403A09 | B8 01000000              | mov eax,1                               |
00403A0E | 66:0345 E8               | add ax,word ptr ss:[ebp-18]             |
00403A12 | 0F80 94010000            | jo bjcm20a.403BAC                       |大跳
00403A18 | 8945 E8                  | mov dword ptr ss:[ebp-18],eax           |
00403A1B | 33DB                     | xor ebx,ebx                             |
00403A1D | E9 5AFDFFFF              | jmp bjcm20a.40377C                      |
00403A22 | 33DB                     | xor ebx,ebx                             |
00403A24 | 8B35 A4104000            | mov esi,dword ptr ds:[<&__vbaVarDup>]   |
00403A2A | B9 04000280              | mov ecx,80020004                        |
00403A2F | 894D 98                  | mov dword ptr ss:[ebp-68],ecx           |
00403A32 | B8 0A000000              | mov eax,A                               | A:'\n'
00403A37 | 894D A8                  | mov dword ptr ss:[ebp-58],ecx           |
00403A3A | BF 08000000              | mov edi,8                               |
00403A3F | 8D95 50FFFFFF            | lea edx,dword ptr ss:[ebp-B0]           | edx:EntryPoint
00403A45 | 8D4D B0                  | lea ecx,dword ptr ss:[ebp-50]           |
00403A48 | 8945 90                  | mov dword ptr ss:[ebp-70],eax           |
00403A4B | 8945 A0                  | mov dword ptr ss:[ebp-60],eax           |
00403A4E | C785 58FFFFFF F0224000   | mov dword ptr ss:[ebp-A8],bjcm20a.4022F | 4022F0:L"Wrong serial!"
00403A58 | 89BD 50FFFFFF            | mov dword ptr ss:[ebp-B0],edi           |
00403A5E | FFD6                     | call esi                                |
00403A60 | 8D95 60FFFFFF            | lea edx,dword ptr ss:[ebp-A0]           | edx:EntryPoint
00403A66 | 8D4D C0                  | lea ecx,dword ptr ss:[ebp-40]           |
00403A69 | C785 68FFFFFF C8224000   | mov dword ptr ss:[ebp-98],bjcm20a.4022C | 4022C8:L"Sorry, try again!"

我们看到了最近的跳转处是00403A1D 该处是一个向上跳的JMP明显不是我们要找的跳转,在往上00403A12是一个向下的大跳也不是我们要找的跳转,再往上00403A04是一个跳转到00403A1D下发的地址可能是我们要找的跳转,在此处下断点

F9运行,在输入框内输入任意数据,点击Check it按钮,没有在跳转处暂停,我们在下一条指令下设置断点,再次点击按钮,此时程序暂停到了我们的断点处

由此可知,程序是通过别处跳转到00403A24

我在x32dbg内右键 搜索->当前模块->常数   在输入框内输入00403A24点击确定

 

搜索到一处引用的地址

点击进入该地址,在此处下断点

再次点击Check it 按钮

此时程序停在了我们刚刚设置的断点处,我们单步向下

此时可以看出程序跳转到了错误信息提示处,我们将00403A04处的指令改为NOP,F9运行

bingo~ 此时破解成功

 

ON.2

注册机方式

我们使用VB Decompiler Pro打开016号程序 

发现和我们的014号程序代码一样

附上我们的注册机代码

code = ''
for i in range(1, 10):
    a = i ^ 2
    code = code + str(a)[-1]
print(code)

得出结果为301674501我们输入到输入框内,点击Check it按钮

 

bingo ~ 破解成功

 

转载于:https://www.cnblogs.com/lonenysky/p/11397402.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 [安全攻防进阶篇] 中,有关于逆向分析的教程可以帮助你了解如何使用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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值