吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4431|回复: 24
收起左侧

[CrackMe] 已破解 发一个CrackMe

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

本帖最后由 zbnysjwsnd8 于 2017-10-14 20:14 编辑

这个CrackMe还是挺简单的,成功输出Success



注册码:692659380\礱a癴fXJFLXJFLXJFLXJFLXJ

本帖子中包含更多资源

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

x

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
Aeon + 1 + 1 鼓励转贴优秀软件安全工具和文档!
drw168 + 1 + 1 谢谢@Thanks!

查看全部评分

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

SeriousSnow 发表于 2017-10-14 18:58
看了半天,,表示不知道怎么搞。。。。。。
[C] 纯文本查看 复制代码
int __cdecl main(int argc, const char **argv, const char **envp)
{
  char str_key[9]; // [esp+0h] [ebp-30h]
  char v5[11]; // [esp+9h] [ebp-27h]
  char v6; // [esp+14h] [ebp-1Ch]
  char v7; // [esp+15h] [ebp-1Bh]
  char v8; // [esp+16h] [ebp-1Ah]
  char v9; // [esp+17h] [ebp-19h]
  char v10; // [esp+18h] [ebp-18h]
  char v11; // [esp+19h] [ebp-17h]
  char v12; // [esp+1Ah] [ebp-16h]
  unsigned int long_key; // [esp+1Ch] [ebp-14h]
  BOOL v14; // [esp+20h] [ebp-10h]
  unsigned int k; // [esp+24h] [ebp-Ch]
  unsigned int i; // [esp+28h] [ebp-8h]
  unsigned int j; // [esp+2Ch] [ebp-4h]

  v14 = IsDebuggerPresent();
  v6 = 0;
  v7 = 0;
  v8 = 0;
  v9 = 0;
  v10 = 0;
  v11 = 0;
  v12 = 0;
  printf("Key:");
  scanf("%s", str_key);                         // 输入key
  if ( v14 )                                    // 如果是调试 ??????
  {
    long_key = strtolong(str_key);
    srand(long_key);                            // 置随机数种子
    for ( i = 0; i < 0xC; ++i )
    {
      if ( rand() % 26 != byte_412000[i] )      // 产生伪随机数据 判断...呃好像和输出结果没啥关系
        goto LABEL_15;                          // 输出失败
    }
    for ( j = 0; j < 7; ++j )
    {
      srand((unsigned __int8)v5[j]);            // 用 v5 数组的数字 置随机数种子
      *(&v6 + j) = rand();                      // 给数组V6依次赋值  为第一个伪随机数
    }
    for ( k = 0; k < 7; ++k )                   // 输出v6数组前七个字符 估计是Success
      printf("%c", *(&v6 + k));
    puts(byte_40D1AD);                          // puts  {0,0,0}
  }
  else if ( !strcmp("{N0rMa1}", str_key) )
  {
    puts("Success.");
  }
  else
  {
LABEL_15:
    puts("Fail.");
  }
  system("pause");
  return 0;
}
SeriousSnow 发表于 2017-10-14 19:40
本帖最后由 SeriousSnow 于 2017-10-14 19:48 编辑

然后跑出来要符合
[C] 纯文本查看 复制代码
srand(long_key);                            // 置随机数种子
    for ( i = 0; i < 0xC; ++i )
    {
      if ( rand() % 26 != byte_412000 )      // 产生伪随机数据 判断...呃好像和输出结果没啥关系
        goto LABEL_15;                          // 输出失败
    }

值是692659380
实际调试。。应为 直接运行或者吾爱OD IsDebuggerPresent这玩意返回值都是0 就去判断 输入是不是 {N0rMa1} 是就是假成功不是就是失败。。。。。
修改跳转。。输出的值也是乱码。。想去改V5发现。。获取是字节获取的,,最大255.。。(─.─||| 真的无力了
736148001 发表于 2017-10-14 16:22
明码的- -

本帖子中包含更多资源

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

x
 楼主| zbnysjwsnd8 发表于 2017-10-14 16:24

提示信息不对
736148001 发表于 2017-10-14 16:25
成功不是Success那个吗?
 楼主| zbnysjwsnd8 发表于 2017-10-14 16:25
736148001 发表于 2017-10-14 16:25
成功不是Success那个吗?

仔细对比一下吧 有不一样的地方
736148001 发表于 2017-10-14 16:28
小个点 知道了
带色的小马甲 发表于 2017-10-14 16:29
打开系统好卡
SeriousSnow 发表于 2017-10-14 19:20
就能知道v5的值,,,但是貌似和输入没啥关系啊。。。。。。
[C] 纯文本查看 复制代码
int main(int argc, char ** argv)
{
	unsigned long v5[] = { 10048,20093,10053,10053,20088,10058,10058 };
	int i;
	for (i = 0; i < 7; i++)
	{
		srand(v5[i]);
		printf_s("%c", rand());
	}
	
	return 0;
}
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-25 22:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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