首页
社区
课程
招聘
[原创]我的第二个CM
发表于: 2007-8-12 03:14 5776

[原创]我的第二个CM

2007-8-12 03:14
5776
id:ImmIsIME
sn:ImmIsIME

不会写复杂的,就用了一个定时器模仿一个软件,软件从启动时计算20秒后自动退出。

其实被模仿的软件是11分钟就自动失去所有功能。

反正这样理解,从软件启动时开始计算,到时间上限后,软件就会执行一个别的动作。

其实软件中我本想做成输入注册码三次不对就关闭窗体,但头有点晕了,先这样写着。

输入的位数作了上限,超过8位就提示。当两行都准确后,那个灰色的按钮就不灰显了。

如果是按钮克星来的话,也作了判断,随便乱填或不填就想OK的话,也会退出的。

头晕了,睡觉,分享给与我同样感觉的朋友,我是新手,欢迎一起探讨、学习、进步。

我用的工具还是delphi 10 lite。不会写软件,都是灵感和大量的操作在鼓舞自己。

不知道有没有bug。eek:先谢谢朋友的查阅。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 1355
活跃值: (344)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
2
郁闷,都告诉大家:
id:ImmIsIME
sn:ImmIsIME

貌似利用模拟时钟,隔一段时间就检查一次输入框,如果正确就隐藏掉按钮一,说明按钮一是个摆设和陷阱,一按就倒~~

破出来一点成就都没有,先取用户名,比较是否“ImmIsIME”,不是就拉倒,然后就退出程序。
用户名检测完毕后,检测注册码,同样注册码是“ImmIsIME”的话就显示“Good!”否则也无声息得退出...

设置断点的技巧:先F9运行,填好注册信息后,在42C703下断点,大概一秒左右就断下来了,可见是定时检测的。

0042C6F5   .  66:8378 3A 00 cmp     word ptr [eax+3A], 0——比较是否已经成功注册过,是的话就跳走,解除时间限制
0042C6FA      74 0A         je      short 0042C706                   ;  
0042C6FC   .  8BD8          mov     ebx, eax
0042C6FE   .  8BD0          mov     edx, eax
0042C700   .  8B43 3C       mov     eax, dword ptr [ebx+3C]
0042C703   .  FF53 38       call    dword ptr [ebx+38]               ;  调用计时器,跟进,见表一
0042C706   >  5B            pop     ebx
0042C707   .  C3            retn

表一:
00459890  /.  55            push    ebp
00459891  |.  8BEC          mov     ebp, esp
00459893  |.  33C9          xor     ecx, ecx
00459895  |.  51            push    ecx
00459896  |.  51            push    ecx
00459897  |.  51            push    ecx
00459898  |.  51            push    ecx
00459899  |.  51            push    ecx
0045989A  |.  51            push    ecx
0045989B  |.  51            push    ecx
0045989C  |.  53            push    ebx
0045989D  |.  8BD8          mov     ebx, eax
0045989F  |.  33C0          xor     eax, eax
004598A1  |.  55            push    ebp
004598A2  |.  68 5A9A4500   push    00459A5A
004598A7  |.  64:FF30       push    dword ptr fs:[eax]
004598AA  |.  64:8920       mov     dword ptr fs:[eax], esp
004598AD  |.  8D55 FC       lea     edx, dword ptr [ebp-4]
004598B0  |.  8B83 64030000 mov     eax, dword ptr [ebx+364]
004598B6  |.  E8 9D1AFEFF   call    0043B358                         ;  取假用户名和长度
004598BB  |.  8B45 FC       mov     eax, dword ptr [ebp-4]           ;  EAX可见假用户名
004598BE  |.  8945 F8       mov     dword ptr [ebp-8], eax           ;  放入地址,先捏着
004598C1  |.  8B45 F8       mov     eax, dword ptr [ebp-8]
004598C4  |.  85C0          test    eax, eax
004598C6  |.  74 05         je      short 004598CD                   ;  是否输入用户名?不输入的话,下面要骂人FUCK了
004598C8  |.  83E8 04       sub     eax, 4
004598CB  |.  8B00          mov     eax, dword ptr [eax]
004598CD  |>  83F8 08       cmp     eax, 8                           ;  比较用户名是否小于等于8位,不是的话骂人FUCK了
004598D0  |.  7E 04         jle     short 004598D6
004598D2  |.  B0 01         mov     al, 1
004598D4  |.  EB 26         jmp     short 004598FC
004598D6  |>  8D55 F4       lea     edx, dword ptr [ebp-C]
004598D9  |.  8B83 6C030000 mov     eax, dword ptr [ebx+36C]
004598DF  |.  E8 741AFEFF   call    0043B358                         ;  取假注册码
004598E4  |.  8B45 F4       mov     eax, dword ptr [ebp-C]           ;  EAX可见假注册码
004598E7  |.  8945 F8       mov     dword ptr [ebp-8], eax           ;  先存入地址捏着
004598EA  |.  8B45 F8       mov     eax, dword ptr [ebp-8]           ;  送入假注册码
004598ED  |.  85C0          test    eax, eax
004598EF  |.  74 05         je      short 004598F6                   ;  注册码是否为空?为空就骂人
004598F1  |.  83E8 04       sub     eax, 4
004598F4  |.  8B00          mov     eax, dword ptr [eax]
004598F6  |>  83F8 08       cmp     eax, 8                           ;  跟8比较,利用SETG来置AL为0或者1
004598F9  |.  0F9FC0        setg    al                               ;  大于时,置OPRD为1,否则清0,这是针对有符号数的
004598FC  |>  84C0          test    al, al                           ;  如果标志是0则OK了,不然又FUCK了。即要求注册码不大于8位
004598FE  |.  74 29         je      short 00459929
00459900  |.  B8 709A4500   mov     eax, 00459A70                    ;  fuck!
00459905  |.  E8 D63FFDFF   call    0042D8E0
0045990A  |.  33D2          xor     edx, edx
0045990C  |.  8B83 64030000 mov     eax, dword ptr [ebx+364]
00459912  |.  E8 711AFEFF   call    0043B388
00459917  |.  33D2          xor     edx, edx
00459919  |.  8B83 6C030000 mov     eax, dword ptr [ebx+36C]
0045991F  |.  E8 641AFEFF   call    0043B388
00459924  |.  E9 0E010000   jmp     00459A37
00459929  |>  8D55 F0       lea     edx, dword ptr [ebp-10]
0045992C  |.  8B83 64030000 mov     eax, dword ptr [ebx+364]
00459932  |.  E8 211AFEFF   call    0043B358                         ;  取假用户名
00459937  |.  8B45 F0       mov     eax, dword ptr [ebp-10]          ;  EAX可见假用户名
0045993A  |.  BA 809A4500   mov     edx, 00459A80                    ;  immisime ——取真的用户名
0045993F  |.  E8 50B1FAFF   call    00404A94                         ;  比较
00459944  |.  75 45         jnz     short 0045998B                   ;  绝对不能跳
00459946  |.  8D55 EC       lea     edx, dword ptr [ebp-14]
00459949  |.  8B83 6C030000 mov     eax, dword ptr [ebx+36C]
0045994F  |.  E8 041AFEFF   call    0043B358                         ;  取假注册码
00459954  |.  8B45 EC       mov     eax, dword ptr [ebp-14]          ;  EAX可见假注册码
00459957  |.  BA 809A4500   mov     edx, 00459A80                    ;  immisime——真的注册码
0045995C  |.  E8 33B1FAFF   call    00404A94                         ;  比较
00459961  |.  75 28         jnz     short 0045998B                   ;  绝对不能跳
00459963  |.  8D55 E8       lea     edx, dword ptr [ebp-18]
00459966  |.  8B83 64030000 mov     eax, dword ptr [ebx+364]
0045996C  |.  E8 E719FEFF   call    0043B358                         ;  再取用户名,进行是否爆破的检测。即比较检测两次
00459971  |.  8B45 E8       mov     eax, dword ptr [ebp-18]          ;  EAX可见用户名
00459974  |.  8945 F8       mov     dword ptr [ebp-8], eax           ;  先存入地址捏着
00459977  |.  8B45 F8       mov     eax, dword ptr [ebp-8]           ;  取用户名
0045997A  |.  85C0          test    eax, eax                         ;  比较是否为空
0045997C  |.  74 05         je      short 00459983                   ;  绝对不能跳
0045997E  |.  83E8 04       sub     eax, 4
00459981  |.  8B00          mov     eax, dword ptr [eax]             ;  取用户名长度
00459983  |>  83F8 08       cmp     eax, 8                           ;  与8比较
00459986  |.  0F94C0        sete    al                               ;  等于0时(ZF=1),置AL为1,否则清0,即比较是否等于8位
00459989  |.  EB 02         jmp     short 0045998D
0045998B  |>  33C0          xor     eax, eax
0045998D  |>  84C0          test    al, al                           ;  检测标志
0045998F  |.  74 28         je      short 004599B9                   ;  不等于8位也跳,阴险的地方。如果爆破的话要改的还挺多
00459991  |.  8D55 E4       lea     edx, dword ptr [ebp-1C]
00459994  |.  8B83 6C030000 mov     eax, dword ptr [ebx+36C]
0045999A  |.  E8 B919FEFF   call    0043B358                         ;  取注册码
0045999F  |.  8B45 E4       mov     eax, dword ptr [ebp-1C]          ;  EAX可见注册码
004599A2  |.  8945 F8       mov     dword ptr [ebp-8], eax           ;  存入地址先捏着
004599A5  |.  8B45 F8       mov     eax, dword ptr [ebp-8]           ;  EAX为注册码
004599A8  |.  85C0          test    eax, eax                         ;  是否为空?为空就完蛋,FUCK
004599AA  |.  74 05         je      short 004599B1
004599AC  |.  83E8 04       sub     eax, 4
004599AF  |.  8B00          mov     eax, dword ptr [eax]             ;  取注册码长度
004599B1  |>  83F8 08       cmp     eax, 8                           ;  与8比较
004599B4  |.  0F94C0        sete    al                               ;  等于0时(ZF=1),置AL为1,否则清0,即比较是否等于8位
004599B7  |.  EB 02         jmp     short 004599BB
004599B9  |>  33C0          xor     eax, eax
004599BB  |>  84C0          test    al, al                           ;  检测标志
004599BD  |.  74 1A         je      short 004599D9                   ;  不等于8位也跳,阴险的地方。如果爆破的话要改的还挺多
004599BF  |.  B2 01         mov     dl, 1
004599C1  |.  8B83 74030000 mov     eax, dword ptr [ebx+374]
004599C7  |.  8B08          mov     ecx, dword ptr [eax]
004599C9  |.  FF51 68       call    dword ptr [ecx+68]
004599CC  |.  8B83 60030000 mov     eax, dword ptr [ebx+360]
004599D2  |.  E8 351FFEFF   call    0043B90C
004599D7  |.  EB 5E         jmp     short 00459A37
004599D9  |>  E8 32CDFAFF   call    <jmp.&kernel32.GetTickCount>     ; [GetTickCount
004599DE  |.  B9 E8030000   mov     ecx, 3E8
004599E3  |.  33D2          xor     edx, edx
004599E5  |.  F7F1          div     ecx
004599E7  |.  33D2          xor     edx, edx
004599E9  |.  2B05 D0054600 sub     eax, dword ptr [4605D0]
004599EF  |.  1B15 D4054600 sbb     edx, dword ptr [4605D4]
004599F5  |.  83FA 00       cmp     edx, 0
004599F8  |.  75 07         jnz     short 00459A01
004599FA  |.  83F8 14       cmp     eax, 14
004599FD  |.  76 38         jbe     short 00459A37
004599FF  |.  EB 02         jmp     short 00459A03
00459A01  |>  7E 34         jle     short 00459A37
00459A03  |>  E8 08CDFAFF   call    <jmp.&kernel32.GetTickCount>     ; [GetTickCount
00459A08  |.  B9 E8030000   mov     ecx, 3E8
00459A0D  |.  33D2          xor     edx, edx
00459A0F  |.  F7F1          div     ecx
00459A11  |.  33D2          xor     edx, edx
00459A13  |.  8905 D0054600 mov     dword ptr [4605D0], eax
00459A19  |.  8915 D4054600 mov     dword ptr [4605D4], edx
00459A1F  |.  B8 949A4500   mov     eax, 00459A94                    ;  see you!
00459A24  |.  E8 B73EFDFF   call    0042D8E0
00459A29  |.  8BC3          mov     eax, ebx
00459A2B  |.  E8 A0A5FFFF   call    00453FD0
00459A30  |.  8BC3          mov     eax, ebx
00459A32  |.  E8 219EFAFF   call    00403858
00459A37  |>  33C0          xor     eax, eax
00459A39  |.  5A            pop     edx
00459A3A  |.  59            pop     ecx
00459A3B  |.  59            pop     ecx
00459A3C  |.  64:8910       mov     dword ptr fs:[eax], edx
00459A3F  |.  68 619A4500   push    00459A61
00459A44  |>  8D45 E4       lea     eax, dword ptr [ebp-1C]
00459A47  |.  BA 05000000   mov     edx, 5
00459A4C  |.  E8 57ACFAFF   call    004046A8
00459A51  |.  8D45 FC       lea     eax, dword ptr [ebp-4]
00459A54  |.  E8 2BACFAFF   call    00404684
00459A59  \.  C3            retn

挺不错的思路,将比较的地方写入非按钮事件中,赞!呵呵,不过不够隐蔽~~
2007-8-12 09:09
0
雪    币: 209
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
,没有注意fuck,不好意思,无恶意的
朋友起得真早,谢谢你回复。
向你学习。
2007-8-12 10:54
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
汗,爱琴海动作真快啊!
2007-8-13 08:26
0
雪    币: 1355
活跃值: (344)
能力值: ( LV13,RANK:920 )
在线值:
发帖
回帖
粉丝
5
呵呵,那是~~~(洋洋自得中ING。。。
2007-8-13 09:57
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼上的,能否对下面这句话解释详细点:
   设置断点的技巧:先F9运行,填好注册信息后,在42C703下断点,大概一秒左右就断下来了,可见是定时检测的。
2007-8-14 10:49
0
游客
登录 | 注册 方可回帖
返回