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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2065|回复: 25
收起左侧

[CrackMe] 写了一个crack me大家一起试一试

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

下面是crack me的链接
链接:https://pan.quark.cn/s/60150b87236e
下面是成功的提示语
加油啊!!!!!

本帖子中包含更多资源

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

x

免费评分

参与人数 1热心值 +1 收起 理由
Wzx157 + 1 用心讨论,共获提升!

查看全部评分

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

 楼主| Pseudoleaf12 发表于 2023-6-7 18:25
实在是不好意思,第一次传crack me,没有🈚经验!对不起>人<,但是还是希望大家可以认真9完成这个crack me
solly 发表于 2023-6-9 16:28
本帖最后由 solly 于 2023-6-9 16:38 编辑

象是一个只有一个减法器的虚拟机,入口是 0x00405260
[Asm] 纯文本查看 复制代码
.data:00405200 01 00 00 00                   dword_405200 dd 1                       ; DATA XREF: main_sub_401057+47↑o
.data:00405200                                                                       ; count of code buffer = 1
.data:00405204 D1 02 00 00                           dd 2D1h                         ; length of code buffer = 721
.data:00405208 00 00 00 00                           dd 0                            ; sn[0] (index = 00h)
.data:0040520C 00 00 00 00                           dd 0                            ; sn[1] (index = 04h)
.data:00405210 00 00 00 00                           dd 0                            ; sn[2] (index = 08h)
.data:00405214 00 00 00 00                           dd 0                            ; sn[3] (index = 0Ch)
.data:00405218 00 00 00 00                           dd 0
.data:0040521C 00 00 00 00                           dd 0
.data:00405220 00 00 00 00                           dd 0
.data:00405224 00 00 00 00                           dd 0
.data:00405228 78 7F 63 82                           dd 82637F78h
.data:0040522C 7E 99 86 93                           dd 9386997Eh
.data:00405230 57 45 4C 43 4F 4D 45 20 54 4F+aWelcomeToThisC db 'WELCOME TO THIS CRACKME',0
.data:00405248 10 98 91 01                           dd 1919810h                     ; input (index = 40h)
.data:0040524C 14 45 11 00                           dd 114514h                      ; output (index = 44h)
.data:00405250 00 00 00 00                           dd 0                            ; aTmp (index = 48h)
.data:00405254 00 00 00 00                           dd 0                            ; bTmp (index = 4Ch)
.data:00405258 00 00 00 00                           dd 0                            ; const 0
.data:0040525C 00 00 00 00                           dd 0                            ; const 1
.data:00405260 28 00 00 00                           dd 28h                          ; offset 'WELCOME TO THIS CRACKME'
.data:00405264 44 00 00 00                           dd 44h                          ; output()
.data:00405268 00 00 00 00                           dd 0
.data:0040526C 00 00 00 00                           dd 0
.data:00405270 40 00 00 00                           dd 40h                          ; input()
.data:00405274 00 00 00 00                           dd 0
.data:00405278 48 00 00 00                           dd 48h
.data:0040527C 10 00 00 00                           dd 10h
.data:00405280 A0 00 00 00                           dd 0A0h                         ; jmp 0x2A8
.data:00405284 88 00 00 00                           dd 88h                          ; offset "you failed."
.data:00405288 44 00 00 00                           dd 44h                          ; output()
.data:0040528C 94 00 00 00                           dd 94h                          ; jmp 0x29C
.data:00405290 79 6F 75 20 66 61 69 6C 65 64+aYouFailed db 'you failed.',0           ; 0x88
.data:0040529C 00 00 00 00                           dd 0                            ; loc: 0x29C
.data:004052A0 00 00 00 00                           dd 0
.data:004052A4 FF FF FF FF                           dd 0FFFFFFFFh                   ; 0x9C, exit code @ failed
.data:004052A8 04 00 00 00                           dd 4                            ; loc: 0x2A8
.data:004052AC 48 00 00 00                           dd 48h
.data:004052B0 00 00 00 00                           dd 0
.data:004052B4 48 00 00 00                           dd 48h
.data:004052B8 00 00 00 00                           dd 0
.data:004052BC 00 00 00 00                           dd 0
.data:004052C0 48 00 00 00                           dd 48h
.data:004052C4 48 00 00 00                           dd 48h
.data:004052C8 00 00 00 00                           dd 0
.data:004052CC 10 00 00 00                           dd 10h
.data:004052D0 10 00 00 00                           dd 10h
.data:004052D4 00 00 00 00                           dd 0
.data:004052D8 00 00 00 00                           dd 0
.data:004052DC 48 00 00 00                           dd 48h
.data:004052E0 00 00 00 00                           dd 0
.data:004052E4 48 00 00 00                           dd 48h
.data:004052E8 10 00 00 00                           dd 10h
.data:004052EC 00 00 00 00                           dd 0
.data:004052F0 48 00 00 00                           dd 48h
.data:004052F4 48 00 00 00                           dd 48h
.data:004052F8 00 00 00 00                           dd 0
.data:004052FC 0C 00 00 00                           dd 0Ch
.data:00405300 48 00 00 00                           dd 48h
.data:00405304 00 00 00 00                           dd 0
.data:00405308 48 00 00 00                           dd 48h
.data:0040530C 08 00 00 00                           dd 8
.data:00405310 00 00 00 00                           dd 0
.data:00405314 48 00 00 00                           dd 48h
.data:00405318 48 00 00 00                           dd 48h
.data:0040531C 00 00 00 00                           dd 0
.data:00405320 14 00 00 00                           dd 14h
.data:00405324 14 00 00 00                           dd 14h
.data:00405328 00 00 00 00                           dd 0
.data:0040532C 08 00 00 00                           dd 8
.data:00405330 48 00 00 00                           dd 48h
.data:00405334 00 00 00 00                           dd 0
.data:00405338 48 00 00 00                           dd 48h
.data:0040533C 14 00 00 00                           dd 14h
.data:00405340 00 00 00 00                           dd 0
.data:00405344 48 00 00 00                           dd 48h
.data:00405348 48 00 00 00                           dd 48h
.data:0040534C 00 00 00 00                           dd 0
.data:00405350 10 00 00 00                           dd 10h
.data:00405354 48 00 00 00                           dd 48h
.data:00405358 00 00 00 00                           dd 0
.data:0040535C 10 00 00 00                           dd 10h
.data:00405360 10 00 00 00                           dd 10h
.data:00405364 00 00 00 00                           dd 0
.data:00405368 54 00 00 00                           dd 54h
.data:0040536C 48 00 00 00                           dd 48h
.data:00405370 00 00 00 00                           dd 0
.data:00405374 48 00 00 00                           dd 48h
.data:00405378 4C 00 00 00                           dd 4Ch
.data:0040537C 00 00 00 00                           dd 0
.data:00405380 4C 00 00 00                           dd 4Ch
.data:00405384 10 00 00 00                           dd 10h
.data:00405388 00 00 00 00                           dd 0
.data:0040538C 48 00 00 00                           dd 48h
.data:00405390 48 00 00 00                           dd 48h
.data:00405394 00 00 00 00                           dd 0
.data:00405398 4C 00 00 00                           dd 4Ch
.data:0040539C 4C 00 00 00                           dd 4Ch
.data:004053A0 00 00 00 00                           dd 0
.data:004053A4 14 00 00 00                           dd 14h
.data:004053A8 48 00 00 00                           dd 48h
.data:004053AC 00 00 00 00                           dd 0
.data:004053B0 14 00 00 00                           dd 14h
.data:004053B4 14 00 00 00                           dd 14h
.data:004053B8 00 00 00 00                           dd 0
.data:004053BC 54 00 00 00                           dd 54h
.data:004053C0 48 00 00 00                           dd 48h
.data:004053C4 00 00 00 00                           dd 0
.data:004053C8 48 00 00 00                           dd 48h
.data:004053CC 4C 00 00 00                           dd 4Ch
.data:004053D0 00 00 00 00                           dd 0
.data:004053D4 4C 00 00 00                           dd 4Ch
.data:004053D8 14 00 00 00                           dd 14h
.data:004053DC 00 00 00 00                           dd 0
.data:004053E0 48 00 00 00                           dd 48h
.data:004053E4 48 00 00 00                           dd 48h
.data:004053E8 00 00 00 00                           dd 0
.data:004053EC 4C 00 00 00                           dd 4Ch
.data:004053F0 4C 00 00 00                           dd 4Ch
.data:004053F4 00 00 00 00                           dd 0
.data:004053F8 10 00 00 00                           dd 10h
.data:004053FC 20 00 00 00                           dd 20h
.data:00405400 00 00 00 00                           dd 0
.data:00405404 20 00 00 00                           dd 20h
.data:00405408 48 00 00 00                           dd 48h
.data:0040540C 14 02 00 00                           dd 214h                         ; jmp 0x41C
.data:00405410 48 00 00 00                           dd 48h
.data:00405414 48 00 00 00                           dd 48h
.data:00405418 7C 00 00 00                           dd 7Ch                          ; jmp "you failed."
.data:0040541C 48 00 00 00                           dd 48h                          ; loc: 0x41C
.data:00405420 48 00 00 00                           dd 48h
.data:00405424 00 00 00 00                           dd 0
.data:00405428 48 00 00 00                           dd 48h
.data:0040542C 20 00 00 00                           dd 20h
.data:00405430 38 02 00 00                           dd 238h                         ; jmp 0x440
.data:00405434 48 00 00 00                           dd 48h
.data:00405438 48 00 00 00                           dd 48h
.data:0040543C 7C 00 00 00                           dd 7Ch                          ; jmp "you failed."
.data:00405440 48 00 00 00                           dd 48h                          ; loc: 0x440
.data:00405444 48 00 00 00                           dd 48h
.data:00405448 00 00 00 00                           dd 0
.data:0040544C 14 00 00 00                           dd 14h
.data:00405450 24 00 00 00                           dd 24h
.data:00405454 00 00 00 00                           dd 0
.data:00405458 24 00 00 00                           dd 24h
.data:0040545C 48 00 00 00                           dd 48h
.data:00405460 68 02 00 00                           dd 268h                         ; jmp 0x470
.data:00405464 48 00 00 00                           dd 48h
.data:00405468 48 00 00 00                           dd 48h
.data:0040546C 7C 00 00 00                           dd 7Ch                          ; jmp "you failed."
.data:00405470 48 00 00 00                           dd 48h                          ; loc: 0x470
.data:00405474 48 00 00 00                           dd 48h
.data:00405478 00 00 00 00                           dd 0
.data:0040547C 48 00 00 00                           dd 48h
.data:00405480 20 00 00 00                           dd 20h
.data:00405484 8C 02 00 00                           dd 28Ch                         ; jmp 0x494
.data:00405488 48 00 00 00                           dd 48h
.data:0040548C 48 00 00 00                           dd 48h
.data:00405490 7C 00 00 00                           dd 7Ch                          ; jmp "you failed."
.data:00405494 48 00 00 00                           dd 48h                          ; loc:0x494
.data:00405498 48 00 00 00                           dd 48h
.data:0040549C A1 02 00 00                           dd 2A1h                         ; jmp to OK
.data:004054A0 F1 EE D8 A2                           dd 0A2D8EEF1h                   ; "you xim."
.data:004054A4 F6 02 F4 C1                           dd 0C1F402F6h
.data:004054A8 00                                    db    0
.data:004054A9 10 00 00 00                           dd 10h                          ; loc: OK
.data:004054AD 98 02 00 00                           dd 298h                         ; offset "you "
.data:004054B1 00 00 00 00                           dd 0
.data:004054B5 14 00 00 00                           dd 14h
.data:004054B9 9C 02 00 00                           dd 29Ch                         ; offset "xim."
.data:004054BD 00 00 00 00                           dd 0
.data:004054C1 98 02 00 00                           dd 298h                         ; offset "you xim."
.data:004054C5 44 00 00 00                           dd 44h                          ; output()
.data:004054C9 00 00 00 00                           dd 0
.data:004054CD 48 00 00 00                           dd 48h
.data:004054D1 48 00 00 00                           dd 48h
.data:004054D5 FF FF FF FF                           dd 0FFFFFFFFh                   ; exit code @ success
solly 发表于 2023-6-10 10:56
本帖最后由 solly 于 2023-6-10 23:25 编辑

整理了一下代码,IDA中F5如下:
[C] 纯文本查看 复制代码
int sub_401057()
{
  SIZE_T v0; // ecx
  int *virtual_machine_buffer_v1; // eax
  int v2; // eax
  int v3; // eax
  int v4; // eax
  int v5; // eax
  void *v6; // eax
  unsigned int v8; // [esp-8h] [ebp-5Ch]
  char *virtual_machine_buffer_v9; // [esp-4h] [ebp-58h]
  char v10; // [esp+1Ch] [ebp-38h]
  char *v11; // [esp+20h] [ebp-34h]
  int v12; // [esp+20h] [ebp-34h]
  int v13; // [esp+20h] [ebp-34h]
  int v14; // [esp+20h] [ebp-34h]
  int v15; // [esp+24h] [ebp-30h]
  int code_index_sub_40187F; // [esp+28h] [ebp-2Ch]
  int index_sub_40187F; // [esp+28h] [ebp-2Ch]
  int index_sub_40187Fa; // [esp+28h] [ebp-2Ch]
  int ValueByAddress_sub_40187F; // [esp+38h] [ebp-1Ch]
  int result_v20; // [esp+3Ch] [ebp-18h]
  void *inputString_v21; // [esp+40h] [ebp-14h]
  int next_ip_v22; // [esp+44h] [ebp-10h]
  int current_ip_v23; // [esp+48h] [ebp-Ch]
  char *data_base_v24; // [esp+4Ch] [ebp-8h]
  _DWORD *lpa; // [esp+50h] [ebp-4h]
  char *lpBuffer; // [esp+50h] [ebp-4h]

  // 初始化
  lpa = (_DWORD *)alloc_sub_402588(8u);
  *lpa = dword_405530[0];
  lpa[1] = dword_405530[1];
  next_ip_v22 = 0;
  inputString_v21 = 0;
  get_length_sub_401010(&src_dword_405200);     // get size
  virtual_machine_buffer_v1 = (int *)alloc_sub_402588(v0);// v0 = size
  qmemcpy(virtual_machine_buffer_v1, &src_dword_405200, v8);// 将虚拟机数据和代码拷贝到缓冲区
  virtual_machine_buffer_v9 = (char *)virtual_machine_buffer_v1;
  free_sub_402576(lpa);
  lpBuffer = virtual_machine_buffer_v9;
  data_base_v24 = virtual_machine_buffer_v9 + 8;
  current_ip_v23 = (int)(virtual_machine_buffer_v9 + 96);
  //执行虚拟机
  while ( 1 )
  {
    code_index_sub_40187F = getValueByAddress_sub_40187F(current_ip_v23 + 4);
    
    if ( getValueByAddress_sub_40187F((int)&data_base_v24[code_index_sub_40187F]) == 0x114514 )// 输出信息
    {
      ValueByAddress_sub_40187F = getValueByAddress_sub_40187F(current_ip_v23);
      v10 = int2pointer_sub_4019A3((int)&data_base_v24[ValueByAddress_sub_40187F]);// v10 = (char *)data_base_v24[v19]
      //显示字符串
      WriteConsole_sub_402950(2u, 0, 0, 0, v10);// 第1次显示 'WELCOME TO THIS CRACKME',第2次显示 'you xim.'
      WriteConsole_sub_402950(2u, 0, 0, 0, (char)CrLf_asc_4054E9);
      ////
      if ( getValueByAddress_sub_40187F(current_ip_v23 + 8) )// // code = 0-jmp, other-next_code
        current_ip_v23 = (int)&data_base_v24[getValueByAddress_sub_40187F(current_ip_v23 + 8)];
      else
        current_ip_v23 += 12;
      //
      next_ip_v22 = current_ip_v23 + 8;
    }
    
    index_sub_40187F = getValueByAddress_sub_40187F(current_ip_v23 + 4);
    
    if ( getValueByAddress_sub_40187F((int)&data_base_v24[index_sub_40187F]) == 0x1919810 ) // 输入数据
    {
      inputString_v21 = (void *)getch_sub_402A40(1, 0, 0, 0);// 输入字符串
      if ( (int)strlen_sub_402B20(1, inputString_v21) < 16 )// 检查输入的长度
      {
        break;                                    // 长度不够,退出程序
      }
      WriteConsole_sub_402950(2u, 0, 0, 0, (char)CrLf_asc_4054E9);

      // 将输入的pwd拷贝到虚拟机数据空间,每次4字节,拷贝4次,共16字节
      v11 = &data_base_v24[getValueByAddress_sub_40187F(current_ip_v23)];// copy pwd[0]
      v2 = getValueByAddress_sub_40187F((int)inputString_v21);
      Save_Integer_sub_401A1A(v11, v2);
      v12 = (int)&data_base_v24[getValueByAddress_sub_40187F(current_ip_v23) + 4];// copy pwd[1]
      v3 = getValueByAddress_sub_40187F((int)inputString_v21 + 4);
      Save_Integer_sub_401A1A(v12, v3);
      v13 = (int)&data_base_v24[getValueByAddress_sub_40187F(current_ip_v23) + 8];// copy pwd[2]
      v4 = getValueByAddress_sub_40187F((int)inputString_v21 + 8);
      Save_Integer_sub_401A1A(v13, v4);
      v14 = (int)&data_base_v24[getValueByAddress_sub_40187F(current_ip_v23) + 12];// copy pwd[3]
      v5 = getValueByAddress_sub_40187F((int)inputString_v21 + 12);
      Save_Integer_sub_401A1A(v14, v5);
      ////
      current_ip_v23 = (int)(data_base_v24 + 160);
      next_ip_v22 = (int)(data_base_v24 + 168);
    }

    index_sub_40187Fa = getValueByAddress_sub_40187F(current_ip_v23 + 4);

    v15 = getValueByAddress_sub_40187F(current_ip_v23);
    //执行减法
    result_v20 = subtract_processor_sub_401A2D(index_sub_40187Fa, v15, data_base_v24);// 执行减法指令
    //设置两个常量
    Set_Constant_sub_4024DB((_DWORD *)data_base_v24 + 20, 0);
    Set_Constant_sub_4024DB((_DWORD *)data_base_v24 + 21, 1);
    
    if ( result_v20 > 0 )                       // 减法结果检查,0-jxx_check, other-next_code
    {
      current_ip_v23 += 12;
      next_ip_v22 = current_ip_v23 + 8;
    }
    else
    {
      if ( getValueByAddress_sub_40187F(next_ip_v22) == -1 )// 是否退出
        goto exit_label; //// 指令为-1则退出程序
      if ( getValueByAddress_sub_40187F(next_ip_v22) )// code = 0-next_code, other-jmp
        current_ip_v23 = (int)&data_base_v24[getValueByAddress_sub_40187F(next_ip_v22)];
      else
        current_ip_v23 += 12;
      ////
      next_ip_v22 = current_ip_v23 + 8;
    }
  }
  WriteConsole_sub_402950(2u, 0, 0, 0, (char)length_shorter_asc_405504);// 显示长度不够
//退出程序
exit_label:
  WriteConsole_sub_402950(2u, 0, 0, 0, (char)aPressEnterToEx);// press enter to exit
  v6 = (void *)getch_sub_402A40(1, 0, 0, 0);    // pause
  if ( v6 )
    free_sub_402576(v6);
  free_sub_402576(lpBuffer);
  if ( inputString_v21 )
    free_sub_402576(inputString_v21);
  return 0;
}


每条指令为12个字节,由3个 dword 组成,第1,2个是操作数索引,第3个是操作码(0:执行下一条指令;-1:exit;大于0则是jmp,并且其值为目标索引),所有索引都是基于 data_base 的字节偏移量。
byh3025 发表于 2023-6-6 12:57
楼主能换个网盘吗?夸克下不了啊
situhaonan 发表于 2023-6-7 08:10
下不了,还的输入手机号,还得注册,还的要验证码
清风不语 发表于 2023-6-7 09:26
在下载这一步就淘汰50%的人了
rainbowlove5 发表于 2023-6-7 09:56
谢谢分享,学习一下先

免费评分

参与人数 1违规 +1 收起 理由
RS水果 + 1 CM区严禁灌水!

查看全部评分

yueguang3048 发表于 2023-6-7 10:38
备份一下楼主的东西

链接:https://share.weiyun.com/VEP4MgNi 密码:h5r3r6
 楼主| Pseudoleaf12 发表于 2023-6-7 10:39
byh3025 发表于 2023-6-6 12:57
楼主能换个网盘吗?夸克下不了啊

好的&#128076;&#127995;
 楼主| Pseudoleaf12 发表于 2023-6-7 10:58
yueguang3048 发表于 2023-6-7 10:38
备份一下楼主的东西

链接:https://share.weiyun.com/VEP4MgNi 密码:h5r3r6

对不起>人<,麻烦了,但是一定要试一试这个crack me&#128514;&#128514;
byh3025 发表于 2023-6-7 11:04
yueguang3048 发表于 2023-6-7 10:38
备份一下楼主的东西

链接:https://share.weiyun.com/VEP4MgNi 密码:h5r3r6

你的文件没有后缀
 楼主| Pseudoleaf12 发表于 2023-6-7 14:10
byh3025 发表于 2023-6-7 11:04
你的文件没有后缀

链接:https://pan.baidu.com/s/1ooagowp8N_DqslaTyOpJeQ
提取码:52PJ
这是百度网盘的,不好意思,但请搞定这个CRACK ME 欧
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-5-10 21:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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