xuhw 发表于 2007-1-30 21:28:04

4发CrackMe,大家来练习

2发CrackMe,大家来练习。还要继续调动热情喽!

紫色傲雪 发表于 2007-2-2 14:33:15

LZ~打不开啊~

xuhw 发表于 2007-2-7 15:25:19

大家练习啊!

卡秋莎 发表于 2007-2-12 21:41:02

脱壳后运行,用dede找到断点,也断不下来。。。。。
直接程序退出,怎么回事?

不懂算法 发表于 2007-3-15 04:41:13

呵呵,这个和第三个用了同一种变态的方法,比第三个多了一些antidbg
不过如果是把壳脱了之后就简单多了
这个壳陷阱比较变态,而且不脱壳也跳不过antidbg
其实我本来一直以为用了跟二差不多的方法,结果绕了一个大弯子
第二个是只要满足一定条件,就不会创建新进程
这个不一样,他一定会创建一个新的进程,创建的时候让新进程挂起,修改新进程的内存,然后再让新进程运行,自己退出
我本来以为新进程跟原进程是个程序,后来才发现上当了,新进程跟原程序是完全不同的,真正的程序作为一个数据块存在原程序里面,虽然启动新进程的时候内存中加载的是原始程序,不过马上就被完全的替换了
所以 我们要想脱壳,脱原始程序是没用的,要去dump新的进程
这个也挺讨厌的,新的进程有anti dump软件的功能
而且实际上即时dump下来也是释放完全的,而且程序的入口也无法定位,修复导入表更是头痛
实际上我们应该在新进程还没有运行的时候去dump,或者在原进程里面直接把数据块给复制成文件
首先在原进程里面下断点
bp CreateProcessA
断下来之后往下看就能发现WriteProcessMemory函数的调用,我们执行到这里就会知道要往新进程里面写数据的地址和大小,起始地址00cc3bb0,大小是80000,末尾是00d43bb0
我们把00cc3bb0到00d43bb0的数据复制出来保存到一个exe文件里面
这时候我们看这个exe图标不对,那是由于内存跟文件对齐方面不同,我们手工修正他
把4F000到77000的数据移动到400到28400
把77000到80000的数据移动到28200到31200
把30600以后的那个0清掉
文件大小就是30600
现在再看这个exe的图标是不是可以看到了,而且能够运行
用peid查还是加壳的,不过现在已经跟以前不一样了
用upx -d脱壳也行,用od脱壳也行,随你怎么喜欢了
脱壳后也是可以运行的

到此为止,这个壳算是脱干净了,不过他还有antidbg
加载这个程序在入口附件就可以看到有settimer,如果执行到这个settimer就退出了,这上面有个跳转
跳过那个跳转就可以
呵呵,接下来就随你怎么处置她了
算法不是很难,这个crackme就是难在脱壳上面了

这里给一个正确的号
Name:不懂算法
Serial:71918261917151311191

第三个crackme也是同样的手法,也是这样脱壳
第三个算法更是简单,呵呵,我就不说了,大家慢慢跟踪分析

[ 本帖最后由 不懂算法 于 2007-3-15 05:19 编辑 ]

极速暴龙 发表于 2007-3-15 12:34:23

我想发违规帖

"不懂算法是大牛"

;P

梦里水香 发表于 2007-3-15 20:09:12

不懂算法兄弟能否抽空做个视频教程出来:lol: 这样脱壳还没见过:lol:
赌博好爽,一下子把庄家赌破产了:$ :$

fonge 发表于 2007-3-16 23:24:00

原帖由 极速暴龙 于 2007-3-15 12:34 发表 https://www.chinapyg.com/images/common/back.gif
我想发违规帖

"不懂算法是大牛"

;P
怀疑"不懂算法"老兄你是马甲,
介绍一下吧!

lgjxj 发表于 2007-3-18 00:23:45

只能说佩服
页: [1]
查看完整版本: 4发CrackMe,大家来练习