吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

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

[原创] 学破解第155天,《找一个简单的cm,增加一下信心》

[复制链接]
小菜鸟一枚 发表于 2022-1-14 21:26

前言:

  坛友们,年轻就是资本,和我一起逆天改命吧,我的学习过程全部记录及学习资源:https://www.52pojie.cn/thread-1503734-1-1.html
立帖为证!--------记录学习的点点滴滴

0x1发现目标

  1.小白第一个cm,新手快来找自信:https://www.52pojie.cn/thread-1571404-1-1.html

  2.对于没信心的小菜鸟来说,最喜欢这种新手难度的了,可以找回自信。

  3.题目描述:没有壳和花指令,非常适合新手成功会提示相关成功字样。

0x2开始破解

  1.IDA F5试试

int __stdcall sub_411760(HWND hDlg, int a2, int a3, int a4)
{
  unsigned int l; // [esp+D4h] [ebp-8Ch]
  unsigned int k; // [esp+E0h] [ebp-80h]
  int j; // [esp+ECh] [ebp-74h]
  unsigned int i; // [esp+F8h] [ebp-68h]
  CHAR Text[20]; // [esp+104h] [ebp-5Ch] BYREF
  int v10; // [esp+118h] [ebp-48h]
  char v11[20]; // [esp+124h] [ebp-3Ch]
  char v12[20]; // [esp+138h] [ebp-28h]
  CHAR String[4]; // [esp+14Ch] [ebp-14h] BYREF
  int v14; // [esp+150h] [ebp-10h]
  char v15; // [esp+154h] [ebp-Ch]

  __CheckForDebuggerJustMyCode(&unk_41C012);
  *(_DWORD *)String = 0;
  v14 = 0;
  v15 = 0;
  v12[0] = 105;
  v12[1] = 96;
  v12[2] = 110;
  v12[3] = 114;
  v12[4] = 105;
  v12[5] = 116;
  v12[6] = 96;
  v12[7] = 104;
  v12[8] = 1;
  v11[0] = -76;
  v11[1] = -58;
  v11[2] = -61;
  v11[3] = -67;
  v11[4] = -53;
  v11[5] = -90;
  v11[6] = -79;
  v11[7] = -35;
  v11[8] = 1;
  v10 = 1;
  Text[0] = -72;
  Text[1] = -90;
  Text[2] = -50;
  Text[3] = -77;
  Text[4] = -78;
  Text[5] = -56;
  Text[6] = -72;
  Text[7] = -89;
  Text[8] = 1;
  if ( a2 == 16 )
  {
    EndDialog(hDlg, 0);
  }
  else if ( a2 == 273 && a3 == 1002 )
  {
    for ( i = 0; i < 9; ++i )
      v12[i] ^= 1u;
    GetDlgItemTextA(hDlg, 1001, String, 9);
    for ( j = 0; j < 9; ++j )
    {
      if ( String[j] != v12[j] )
      {
        v10 = 0;
        break;
      }
      v10 = 1;
    }
    for ( k = 0; k < 9; ++k )
      Text[k] ^= v10;
    if ( IsDebuggerPresent() )
      v10 = 0;
    if ( !v10 )
    {
      for ( l = 0; l < 9; ++l )
        Text[l] = v11[l] ^ 1;
    }
    MessageBoxA(0, Text, "tip", 0);
  }
  return 0;
}

  2.固定一下基址,因为动态基址跳来跳去不利于我们破解,所以点一下固定基址,把基址固定下来,再点保存。

https://s4.ax1x.com/2022/01/14/78N6PS.png

  3.OD下messagebox断点看看反汇编代码:

0041197B    6A 00           push 0x0
0041197D    68 307B4100     push cm.00417B30                                   ; tip
00411982    8D45 A4         lea eax,dword ptr ss:[ebp-0x5C]
00411985    50              push eax
00411986    6A 00           push 0x0
00411988    FF15 98B04100   call dword ptr ds:[<&USER32.MessageBoxA>]          ; user32.MessageBoxA

再看看堆栈窗口

0018F77C   0041198E  /CALL 到 MessageBoxA 来自 cm.00411988
0018F780   00000000  |hOwner = NULL
0018F784   0018F894  |Text = "登录失败"
0018F788   00417B30  |Title = "tip"
0018F78C   00000000  \Style = MB_OK|MB_APPLMODAL

  4.TEXT决定我们弹窗的内容,看看值从哪来?似乎有些晕。

  Text[0] = -72;
  Text[1] = -90;
  Text[2] = -50;
  Text[3] = -77;
  Text[4] = -78;
  Text[5] = -56;
  Text[6] = -72;
  Text[7] = -89;
  Text[8] = 1;
for ( k = 0; k < 9; ++k )
      Text[k] ^= v10;

if ( !v10 )
  {
    for ( l = 0; l < 9; ++l )
      Text[l] = v11[l] ^ 1;
  }

  5.提示文本有些晕,再看一下我们输入的字符串string,总得比较一下才知道我输入的对不对吧,如果对了不就自己弹出正确的提示了,就不用去想TEXT怎么运算才提示成功。

    GetDlgItemTextA(hDlg, 1001, String, 9);
    for ( j = 0; j < 9; ++j )
    {
      if ( String[j] != v12[j] )
      {
        v10 = 0;
        break;
      }
      v10 = 1;
    }

GetDlgItemTextA就是获取我们输入的字符串,string存储的就是我们输入的字符串,if ( String[j] != v12[j] )这一句就是比较的关键了。

  6.OD中对GetDlgItemTextA下断点:

004118CC    0FBE4C05 EC     movsx ecx,byte ptr ss:[ebp+eax-0x14]               ; 123456
004118D1    8B55 8C         mov edx,dword ptr ss:[ebp-0x74]
004118D4    0FBE4415 D8     movsx eax,byte ptr ss:[ebp+edx-0x28]               ; haoshuai
004118D9    3BC8            cmp ecx,eax                                        ; 比较
004118DB    74 09           je short cm.004118E6

  7.je直接改jmp,让v10等于1,即可完成爆破,所以正确的字符串是haoshuai。

https://s4.ax1x.com/2022/01/14/785Lbq.png

0x3总结

  1.这个生成的好像是debug程序,带很多调试信息,IDA F5反编译很清晰。

  2.ida可以看到代码的大体结构,OD进行调试可以获取实时的参数,变量的值。

  3.study pe比较好用,可以固定基址,也可以探测是否使用公开的加密算法。

免费评分

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

查看全部评分

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

petius 发表于 2022-1-14 22:09
赤裸裸的炫耀,真不大敢回你的帖,担心某一天又被申请删了帖
hw520wh 发表于 2022-1-14 22:09
crudejade 发表于 2022-1-15 10:01
源远流长 发表于 2022-1-15 15:53
果然,正确的字符串,haoshuai
囧途漫漫 发表于 2022-1-15 16:35
大佬可以写篇SCI发表了
头像被屏蔽
明珠一颗 发表于 2022-1-15 16:46
提示: 作者被禁止或删除 内容自动屏蔽
张大铁匠 发表于 2022-1-15 18:00
厉害了,
weizhuqiang 发表于 2022-1-16 08:46
学习很重要,一步小心落伍了。
yidefuren 发表于 2022-1-16 11:46
恭喜楼主。有耐心一定会成功
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 17:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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