小白33421 发表于 2021-7-8 23:04

来个练手CM 难度一颗星

破解后成品图

无任何暗装
放心奔放调试
附上文件

kouyuu 发表于 2021-7-17 15:04

根据某教程,
转到到00401000,查找test edx,3
00403C52/$8B5424 04   mov edx,dword ptr ss:
00403C56|.8B4C24 08   mov ecx,dword ptr ss:
00403C5A|.85D2          test edx,edx
00403C5C|.75 0D         jnz short CM.00403C6B
00403C5E|.33C0          xor eax,eax
00403C60|.85C9          test ecx,ecx
00403C62|.74 06         je short CM.00403C6A
00403C64|.8039 00       cmp byte ptr ds:,0x0
00403C67|.74 01         je short CM.00403C6A
00403C69|.48            dec eax
00403C6A|>C3            retn
00403C6B|>85C9          test ecx,ecx
00403C6D|.75 09         jnz short CM.00403C78
00403C6F|.33C0          xor eax,eax
00403C71|.803A 00       cmp byte ptr ds:,0x0
00403C74|.74 01         je short CM.00403C77
00403C76|.40            inc eax
00403C77|>C3            retn
00403C78|>F7C2 03000000 test edx,0x3


在00403C78下断,随便输入,断下,查看eax,就是密码。

小生帝王 发表于 2021-7-9 22:30

看全都是爆破的,我附上一个keygen的吧
算法比较简单

longfei2017 发表于 2021-7-9 10:31

侃遍天下无二人 发表于 2021-7-8 23:25
怎么连确认按钮都没有,这种该咋调试,给个思路,从入口开始就单步调试吗

断文 本改变的API就行吧

侃遍天下无二人 发表于 2021-7-8 23:25

本帖最后由 侃遍天下无二人 于 2021-7-8 23:28 编辑

怎么连确认按钮都没有,这种该咋调试,给个思路,从入口开始就单步调试吗

搜索曾经的回忆 发表于 2021-7-8 23:17

00403D69    90            nop
00403D6A    90            nop
00403D6B    90            nop
00403D6C    90            nop
00403D6D    90            nop
00403D6E    90            nop

小菜鸟一枚 发表于 2021-7-9 08:07


思路:虽然没有按钮,但是要想判断就必须获取我输入的字符,然后比较。
那么先从第一个思路开始,获取我输入的字符,最常用的就是strlen函数获取字符长长度,我猜测楼主代码可能验证了长度是否为空,以此为突破口,下上断点。

随便输入1个数字断下来了,F8多跟一会走出内层循环。

00403D3B|.50            push eax
00403D3C|.FF75 F8       push                            ;CM.004D9EF8
00403D3F|.E8 0EFFFFFF   call CM.00403C52


这里输入的参数和未知字符串入栈,猜测可能是比较字符串是否相等
00403C52/$8B5424 04   mov edx,dword ptr ss:         ;user32.77397C1D
00403C56      8B4C24 08   mov ecx,dword ptr ss:         ;CM.004D9EF8


这里直接修改传递的参数,让ecx和edx都存同一个字符串,将esp+0x8都改成esp+0x4,让两个参数相等:
00403C52/$8B5424 04   mov edx,dword ptr ss:         ;user32.77397C1D
00403C56      8B4C24 04   mov ecx,dword ptr ss:         ;user32.77397C1D


F9运行,爆破成功,随便输入。

搜索曾经的回忆 发表于 2021-7-8 23:27

算法就是循环取MD5,中间穿插的取中间文本,就不分析了,还是挺简单的

搜索曾经的回忆 发表于 2021-7-8 23:30

侃遍天下无二人 发表于 2021-7-8 23:25
怎么连确认按钮都没有,这种该咋调试,给个思路,从入口开始就单步调试吗

GetWindowTextA

Elizer 发表于 2021-7-9 00:20

只会爆破,还是碰运气的。{:301_1008:}

weikun444 发表于 2021-7-9 09:07

本帖最后由 weikun444 于 2021-7-9 12:20 编辑

跟到这里有明码,但是这个会变的。算法不懂!{:1_909:}


小白33421 发表于 2021-7-9 10:40

这个CM里面挡住了一部分喜欢用msgbox断点的同学,这也是写这个CM的初衷,改变定式思维
在软件调试中你会发现,找不到提示文本
所以采用了,加密部分字符串和混淆视听的方式来写的CM
页: [1] 2 3
查看完整版本: 来个练手CM 难度一颗星