吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2141|回复: 8
收起左侧

[CrackMe] 第二个CrackMe

[复制链接]
Pammer 发表于 2020-4-1 14:50
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

本帖最后由 Pammer 于 2020-4-1 18:55 编辑

之前的CrackMe被人破了,然后又抽出来点儿时间做出来这个CM,请各位破解吧!
CrackMe有解,但是自己破不出来(结果是随机的),所以没法附图,对不起

CM:
看看到了一定的人数公开源代码。
3个人已经破解完了,把这个代码也公开吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 2吾爱币 +13 热心值 +2 收起 理由
夹竹桃 + 1 + 1 谢谢@Thanks!
CrazyNut + 12 + 1 下次记得带上成功截图

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

玖公子 发表于 2020-4-1 18:46
看ida的结果,只要有break的那个if不执行,给他nop掉,程序即可爆破成功,也就是沙发大哥图片中的那个比较eax和ecx的下面的那个jnz,nop就可以了

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
万里绿枫叶 + 1 + 1 用心讨论,共获提升!
CrazyNut + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

小菜鸟一枚 发表于 2020-4-1 17:47
1.还是直接搜索字符串,回车来到失败的地方
[Asm] 纯文本查看 复制代码
010D13D0   .  8B0D 70300D01 mov ecx,dword ptr ds:[<&MSVCP140.std::co>;  msvcp140.std::cout
010D13D6   .  BA 54320D01   mov edx,CrackMe.010D3254                 ;  破解成功,感谢您的参与!
010D13DB   .  68 90170D01   push CrackMe.010D1790
010D13E0   .  E8 6B010000   call CrackMe.010D1550
010D13E5   .  8BC8          mov ecx,eax                              ;  ucrtbase.668A2108
010D13E7   .  FF15 54300D01 call dword ptr ds:[<&MSVCP140.std::basic>;  msvcp140.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::operator<<
010D13ED   .  C3            retn
010D13EE      CC            int3
010D13EF      CC            int3
010D13F0   .  8B0D 70300D01 mov ecx,dword ptr ds:[<&MSVCP140.std::co>;  msvcp140.std::cout
010D13F6   .  BA 70320D01   mov edx,CrackMe.010D3270                 ;  破解失败,请继续加油!
010D13FB   .  68 90170D01   push CrackMe.010D1790
010D1400   .  E8 4B010000   call CrackMe.010D1550
010D1405   .  8BC8          mov ecx,eax                              ;  ucrtbase.668A2108
010D1407   .  FF15 54300D01 call dword ptr ds:[<&MSVCP140.std::basic>;  msvcp140.std::basic_ostream<wchar_t,std::char_traits<wchar_t> >::operator<<
010D140D   .  C3            retn



2.010D13D0 这个是成功的call,.010D13F0 这个是失败的call,通过字符串“请输入密码”定位到call eax这个地方调用
[Asm] 纯文本查看 复制代码
010D1334  |.  B8 D0130D01   |mov eax,CrackMe.010D13D0
010D1339  |.  8945 B8       |mov [local.18],eax
010D133C  |.  3BFE          |cmp edi,esi
010D133E  |.^ 72 C4         \jb short CrackMe.010D1304
010D1340  |.  EB 09         jmp short CrackMe.010D134B
010D1342  |>  B8 F0130D01   mov eax,CrackMe.010D13F0
010D1347  |.  EB 02         jmp short CrackMe.010D134B
010D1349  |>  33C0          xor eax,eax
010D134B  |>  FFD0          call eax



3.直接将mov eax,0x10D13F0改为mov eax,0x10D13D0即可爆破成功


PS:我只会爆破是在追不出来它的密码,就这样了,以下仅为猜测
[C++] 纯文本查看 复制代码
/*
使用时间播种,生成随机数

v10保存下一个goto跳转的地址
*/
v3 = time64(0);
srand(v3);

if ( v0 )    //v0我输入的值
  {
    while ( 1 )
    {
      v8 = &Src;
      v9 = (char *)&Memory;
      if ( v1 >= 0x10 )
        v8 = v6;
      if ( v18 >= 0x10 )
        v9 = (char *)Memory;
      v6 = (void **)v9[v7];
      if ( (void **)(*((char *)v8 + v7) + 33) != v6 || v15 == sub_4013F0 )
        break;
      v6 = (void **)Src;
      ++v7;
      v10 = (int (*)())sub_4013D0;
      v15 = (int (*)())sub_4013D0;
      if ( v7 >= v0 )
        goto LABEL_19;
    }
    v10 = sub_4013F0;
  }
  else    
  {
    v10 = 0;
  }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
CrazyNut + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

paranioa 发表于 2020-4-2 03:07
1. 在“输入密码” 那里下断点,查看 [ebp-0x28] 的内存,复制那十一个字节
2. 然后再用每个字节加上 0x21 ,
3. 程序放行 输入 key

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
GJH588 发表于 2020-4-1 15:44
上班无聊看一下,追注册码这玩意不擅长,还是推理爆破实在点

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 2吾爱币 +4 热心值 +1 收起 理由
Pammer + 1 用心讨论,共获提升!
CrazyNut + 3 + 1 用心讨论,共获提升!

查看全部评分

Bluezzz 发表于 2020-4-2 07:59
paranioa 发表于 2020-4-2 03:07
1. 在“输入密码” 那里下断点,查看 [ebp-0x28] 的内存,复制那十一个字节
2. 然后再用每个字节加上 0x21 ...

您这是用的x64Dbg吧,我想请教一下,您是如何找到字符  “请输入密码”  的?x64Dbg好像没有智能搜索吧,而且我找地址找了半天也没找到,我真心想学这个,您能给我说一下详细一些的教程吗
paranioa 发表于 2020-4-2 15:21
本帖最后由 paranioa 于 2020-4-2 15:26 编辑
Bluezzz 发表于 2020-4-2 07:59
您这是用的x64Dbg吧,我想请教一下,您是如何找到字符  “请输入密码”  的?x64Dbg好像没有智能搜索吧, ...

你要搜索中文的话装这个插件 https://www.52pojie.cn/thread-527699-1-1.html

Bluezzz 发表于 2020-4-2 15:51
paranioa 发表于 2020-4-2 15:21
你要搜索中文的话装这个插件 https://www.52pojie.cn/thread-527699-1-1.html

OK,谢谢啦,那我再试试
a3361920 发表于 2020-4-8 17:09
小菜鸟一枚 发表于 2020-4-1 17:47
1.还是直接搜索字符串,回车来到失败的地方
[mw_shl_code=asm,true]010D13D0   .  8B0D 70300D01 mov ecx, ...

感觉这个方法最简单易懂 学习了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表