审判者压缩 发表于 2020-5-21 18:37

C写的第四个cm(xp可运行)

新手一个,
用c又写了一个cm,比上一个复杂一点。
希望破掉的各位,力所能及的指点一下
先谢为敬。


1个.exe和6个.dll放在一个文件夹运行即可。

htpidk 发表于 2020-5-21 20:40

几个dll之间绕来绕去,算法不难,流程很清晰,要跟算法只是体力活,还是直接强撸好

IBinary 发表于 2020-5-22 08:51

昨天晚上太忙下载了看了一下.没细跟.说一下流程吧
1.DLL很多.打开主程序(.exe) F5反汇编可以看到它加载的DLL是哪个.并且获取这个DLL的导出函数是哪个.
比如主程序: 导出函数是 cm 加载的cm.dll
这样你就打开cm.dll IDA转到导出表. 找到cm函数去逆向就行.
下面又加载了新的导出函数.以及DLL 方法依次类推.直接看算法就可以了.

楼主DLL调DLL 这个其实可以不用.既然是Crackme最少最好.着重算法那块把. 你这样DLL掉DLL 就是复杂一点.对有经验的人来说.直接看

宿妙图 发表于 2020-5-23 10:06

先拖到ida看一眼,发现在cm.dll里进行判断,然后搜字符串搜不到猜想可能字符串在cm.dll里,进去搜一下搜到了,额,算法太复杂,一路改标志寄存器走到下面,还是爆破直接点

神之名 发表于 2020-5-21 22:53

本帖最后由 神之名 于 2020-5-21 22:57 编辑

htpidk 发表于 2020-5-21 20:40
几个dll之间绕来绕去,算法不难,流程很清晰,要跟算法只是体力活,还是直接强撸好
大佬我又来学习了,这个搜索完字符串没有找到有用的,需要怎么下手?

htpidk 发表于 2020-5-21 23:08

神之名 发表于 2020-5-21 22:53
大佬我又来学习了,这个搜索完字符串没有找到有用的,需要怎么下手?


没有字符串,他把password correct这十几个字符都拆开了依次putchar显示,ascii吗的0x70对应的字符是p,0x61对应的是a,依次类推,直到把这十几个字符一个个输出显示。

伪代码就是:
putchar(0x70)
putchar(0x61)
...........................
这样,所以你搜不到字符串

神之名 发表于 2020-5-21 23:12

htpidk 发表于 2020-5-21 23:08
没有字符串,他把password correct这十几个字符都拆开了依次putchar显示,ascii吗的0x70对应的字符是p ...

那你怎么找到切入口呢,能不能给点提示或者说一下思路

htpidk 发表于 2020-5-21 23:24

神之名 发表于 2020-5-21 23:12
那你怎么找到切入口呢,能不能给点提示或者说一下思路

拿起IDA跑啊,F5一按基本等于源码在脸上了,只要会C或C++,能看得懂伪代码就可以了

神之名 发表于 2020-5-21 23:32

htpidk 发表于 2020-5-21 23:24
拿起IDA跑啊,F5一按基本等于源码在脸上了,只要会C或C++,能看得懂伪代码就可以了


你是说这个?

htpidk 发表于 2020-5-21 23:58

神之名 发表于 2020-5-21 23:32
你是说这个?

对的。。。。。。。。

Sweettea 发表于 2020-5-22 09:30

禁止套娃:lol
页: [1] 2
查看完整版本: C写的第四个cm(xp可运行)