吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5246|回复: 26
收起左侧

[CrackMe] 菜鸡写的一个CM,估计一分钟就被破了

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

本帖最后由 jidesheng6 于 2019-7-19 10:45 编辑

E语言写的
成功截图如下
无恶意代码
无壳无花,写着玩的
大家随意吧
我这只小菜鸡需要学习的还有很多



今天编译代码有个地方写错了导致信息框是空白的,现在正常了

是这样的,这个程序里面加了很多无用字符串,我定义了大概5个以上的falied和success,然后随便生成了几个md5在里面,至于算法,我觉得饿没啥算法,取当前时间戳,
然后bas64编码一次时间戳,然后取计算机名,base64一次计算机名然后把base64
过的两个时间戳和计算机名再进行十次base64编码,然后两者相加生成新的base,然后颠倒生成的base,再从其中取出来随机10个字符作为随机码,所以每一秒甚至每一毫秒那个码都是在不断变化的,其次那个进入你们点击了没啥用,我在那里只写入了弹错误框,然后success和falied我都转换成字节集了,然后再加一次密,弹出信息框再进行解密,其次整个程序是用时钟循环执行所以会不断验证编辑框里面内容,当内容正确,就会弹出信息框点击一次确定时钟结束,如果不正确在2分钟后会进入死循环,当然这个它好像没执行估计我写错了,不过还是很佩服各位大佬啊,膜拜膜拜,我还是很菜

本帖子中包含更多资源

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

x

免费评分

参与人数 5吾爱币 +10 热心值 +4 收起 理由
双面胶0514 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
kilkilo502 + 1 用心讨论,共获提升!
超能小虎 + 1 + 1 我很赞同!
CrazyNut + 6 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ttxian + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

迷雾 发表于 2019-7-18 14:41
本帖最后由 迷雾 于 2019-7-18 14:44 编辑

不知道这样算不算



程序有个函数不断的校验密码
函数入口是:0x0401194
拖入IDA分析后备注如图



[C] 纯文本查看 复制代码
void TimerFunc()
{
  int i; // ecx
  void *v1; // [esp-4h] [ebp-34h]
  int v2; // [esp-4h] [ebp-34h]
  void *v3; // [esp-4h] [ebp-34h]
  void *v4; // [esp-4h] [ebp-34h]
  void *v5; // [esp-4h] [ebp-34h]
  void *v6; // [esp+0h] [ebp-30h]
  void *v7; // [esp+Ch] [ebp-24h]
  void *v8; // [esp+Ch] [ebp-24h]
  void *v9; // [esp+Ch] [ebp-24h]
  void *v10; // [esp+Ch] [ebp-24h]
  BOOL v11; // [esp+Ch] [ebp-24h]
  void *v12; // [esp+Ch] [ebp-24h]
  LPVOID v13; // [esp+10h] [ebp-20h]
  LPVOID v14; // [esp+14h] [ebp-1Ch]
  LPVOID v15; // [esp+18h] [ebp-18h]
  LPVOID v16; // [esp+1Ch] [ebp-14h]
  LPVOID v17; // [esp+20h] [ebp-10h]
  LPVOID v18; // [esp+24h] [ebp-Ch]
  LPVOID v19; // [esp+28h] [ebp-8h]
  LPVOID lpMem; // [esp+2Ch] [ebp-4h]

  v19 = 0;
  v18 = 0;
  v17 = 0;
  v16 = 0;
  v15 = 0;
  v14 = 0;
  v6 = (void *)sub_4015CA(0, 0, 0, 0, 0, 0, 0); // v13 = 1563428573000
  lpMem = v6;
  v13 = (LPVOID)lib_sub_40406F((void (__cdecl *)(__int64 *, int, char *))sub_404D40, 1);
  v7 = (void *)base64(&v13);                    // v14 = MTU2MzQyOTE0NzAwMA== (1563428573000)
  if ( v13 )
    FreeMemory(v13);
  if ( v19 )
    FreeMemory(v19);
  v19 = v7;
  v13 = sub_40276E();                           // 调用GetComputerNameA 获取用户名
  v1 = v13;
  if ( v18 )
    FreeMemory(v18);
  v18 = v1;
  v13 = (LPVOID)lib_sub_40406F((void (__cdecl *)(__int64 *, int, char *))sub_404D40, 1);
  v8 = (void *)base64(&v13);                    // 再次base64编码 用我的用户名
  if ( v13 )
    FreeMemory(v13);
  if ( v17 )
    FreeMemory(v17);
  v17 = v8;
  for ( i = 0; ; i = v2 )
  {
    v2 = i + 1;
    if ( i + 1 > 10 )
      break;
    v13 = (LPVOID)lib_sub_40406F((void (__cdecl *)(__int64 *, int, char *))sub_404D40, 1);
    v9 = (void *)base64(&v13);
    if ( v13 )
      FreeMemory(v13);
    if ( v19 )
      FreeMemory(v19);
    v19 = v9;
    v13 = (LPVOID)lib_sub_40406F((void (__cdecl *)(__int64 *, int, char *))sub_404D40, 1);
    v10 = (void *)base64(&v13);
    if ( v13 )
      FreeMemory(v13);
    if ( v17 )
      FreeMemory(v17);
    v17 = v10;
  }
  v13 = (LPVOID)sub_401093((char)v19);
  v3 = v13;
  if ( v16 )
    FreeMemory(v16);
  v16 = v3;
  v13 = 0;
  v4 = sub_40285E(&v16, 0, 0);
  if ( v15 )
    FreeMemory(v15);
  v15 = v4;
  v13 = (LPVOID)sub_402F9C(10);
  v5 = v13;
  if ( v15 )
    FreeMemory(v15);
  v15 = v5;
  if ( v14 )
    FreeMemory(v14);
  v14 = "c3VjY2Vzcw";                           // success的base64编码
  v13 = (LPVOID)GetEditText(1375797249, (LPCSTR)0x160125D0, 8, -1);// 取编辑框内容
  v11 = sub_4010EF(v13, v15) == 0;
  if ( v13 )
    FreeMemory(v13);
  if ( v11 )                                    // 爆破到这里就可以
  {
    sub_4031CF(2, 1, 5, 1);
    v13 = 0;
    v12 = (void *)sub_4033E7(&v14, 0, 0);
    sub_40118C(v6, 0, 0);
    lib_sub_40406F((void (__cdecl *)(__int64 *, int, char *))showMsgBox, 4);
    if ( v12 )
      FreeMemory(v12);
  }
  if ( lpMem )
    FreeMemory(lpMem);
  if ( v19 )
    FreeMemory(v19);
  if ( v18 )
    FreeMemory(v18);
  if ( v17 )
    FreeMemory(v17);
  if ( v16 )
    FreeMemory(v16);
  if ( v15 )
    FreeMemory(v15);
  if ( v14 )
    FreeMemory(v14);
}

本帖子中包含更多资源

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

x

免费评分

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

查看全部评分

xiaoyxf 发表于 2019-7-18 10:57
一分钟。。。已尝试十几分钟,有点扮猪吃老虎的感觉
matao5168 发表于 2019-7-18 12:46
搜索到falied,搜索不到success,10分钟破解不了呀?
xiaoyxf 发表于 2019-7-18 13:40
matao5168 发表于 2019-7-18 12:46
搜索到falied,搜索不到success,10分钟破解不了呀?

搜索到的falied应该是个打掩护的,故意误导用的
乱感觉 发表于 2019-7-18 14:05
其实就是差一丢丢就成功了

本帖子中包含更多资源

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

x

免费评分

参与人数 1吾爱币 +1 收起 理由
jidesheng6 + 1 你这个success咋来的。。。我刚刚发现编译的时候有句写错了导致success没法.

查看全部评分

Dyingchen 发表于 2019-7-18 14:24
怎么说 在内存中把failed改成succes表面上也可以啊 楼主把真的flag放出来看一下呗
 楼主| jidesheng6 发表于 2019-7-18 14:28
Dyingchen 发表于 2019-7-18 14:24
怎么说 在内存中把failed改成succes表面上也可以啊 楼主把真的flag放出来看一下呗

明天的吧,今天有点忙
zz100179 发表于 2019-7-18 14:28
跳转太多了,faild倒是可以搜出来,sucess就没有影子了
zz100179 发表于 2019-7-18 14:29
我靠,我刚看见,正确英文是不对的吧
 楼主| jidesheng6 发表于 2019-7-18 14:31
zz100179 发表于 2019-7-18 14:29
我靠,我刚看见,正确英文是不对的吧

success,可以搜一下。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-1 09:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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