首页
社区
课程
招聘
[求助]近日做一个CRACKME 发现里面乱序.应该如何去除
发表于: 2006-9-8 17:31 6726

[求助]近日做一个CRACKME 发现里面乱序.应该如何去除

2006-9-8 17:31
6726
004414A0 key> $  55             push ebp
004414A1      .  8BEC           mov ebp,esp
004414A3      .  E9 B5000000    jmp keygenme.0044155D
004414A8      >  50             push eax
004414A9      .  FF75 9C        push dword ptr ss:[ebp-64]
004414AC      .^ E9 2DFFFFFF    jmp keygenme.004413DE
004414B1      >  33D2           xor edx,edx
004414B3      .  8AD4           mov dl,ah
004414B5      .  8915 88794700  mov dword ptr ds:[477988],edx
004414BB      .^ EB 91          jmp short keygenme.0044144E
004414BD      >  59             pop ecx
004414BE      .^ EB C8          jmp short keygenme.00441488
004414C0      >  E8 1B840000    call keygenme.004498E0
004414C5      .  59             pop ecx
004414C6      .  85C0           test eax,eax
004414C8      .^ EB 9F          jmp short keygenme.00441469
004414CA      >  50             push eax
004414CB      .  E8 A2B00100    call keygenme.0045C572
004414D0      .  8945 A0        mov dword ptr ss:[ebp-60],eax
004414D3      .^ EB C3          jmp short keygenme.00441498
004414D5      >  75 70          jnz short keygenme.00441547
004414D7      .  6A 10          push 10
004414D9      .  E8 39FFFFFF    call keygenme.00441417
004414DE      .^ EB A2          jmp short keygenme.00441482
004414E0      >  51             push ecx
004414E1      .  E8 0C760000    call keygenme.00448AF2
004414E6      .  59             pop ecx
004414E7      .^ EB D4          jmp short keygenme.004414BD
004414E9      >  E8 8C7D0000    call keygenme.0044927A

每三行左右就一个JMP到别处.严重影响分析.问一下如何解决?
暂时想到是新建一块内存空间.把乱七八糟的代码重新在下面排序.但遇到本身的有的转跳必定出错.大家有更好的方法吗?

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (28)
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
2
会不会是加了花指令呢?
2006-9-8 17:33
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
应该算花指令.内容没有错就是用了一堆JMP把整个程式的顺序打错.
2006-9-8 17:34
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
CCG的悬偿KeyGenMe2.1吧,必须自己独立完成,最好不要公开讨论。
2006-9-8 17:36
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
没错.但不讨论算法可以吗?.因为别的软件发现都用了这种方法打乱.如果不说CRACKME那我发别一个用这种方打乱的软件上来谈吧
2006-9-8 17:37
0
雪    币: 44229
活跃值: (19965)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
6
这就是变形代码,堆栈里执行代码。
刘涛涛与Kernel64搞的。;)
2006-9-8 17:45
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
好像不是堆栈执行的吧
像OEP头
004414A0 key> $  55             push ebp
004414A1      .  8BEC           mov ebp,esp
004414A3      .  E9 B5000000    jmp keygenme.0044155D

跳到下面
0044155D      > \6A FF          push -1
0044155F      .  68 D06B4600    push keygenme.00466BD0
00441564      .  68 809C4400    push keygenme.00449C80
00441569      .^ E9 8BFEFFFF    jmp keygenme.004413F9

明明是一个完整的程式只不过打乱了.三行一下.真受不了.那怎么重新排序? 如果不重排来分析算法太痛苦了
2006-9-8 17:48
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
堆践执行代码在后面等着你呢。
2006-9-8 17:51
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
9
这种方式保护的软件.难道只有用超人般的耐心找到核心破解.没有方法还原它原来的样子吗?
2006-9-8 17:56
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
10
很有意思

我没有看过这个程序,从贴的代码看不是花指令,也许借助MistFall一类的引擎分析代码可以搞成这样。

通过反汇编也许可以重建代码。这样的东西如果全凭苦力去跟就没有意思了。楼主有时间不如写个重建工具。
2006-9-8 19:36
0
雪    币: 3519
活跃值: (4047)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
11
所以这东西我坚决不碰……

气死JOJO
2006-9-8 19:55
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
12
只要引起softworm的兴趣
这个贴子的目的就达到了
2006-9-8 19:56
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
13
我现在没有太多时间,也不碰。
2006-9-8 20:10
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
代码很工整,就是多一个JMP,很容易解决。
搜索本论坛,就有asprotect里面的得到反汇编指令长度的函数,然后判断是否是E9/eb再得到jmp目的地址,再反汇编,依次类推就可以还原。
2006-9-8 20:31
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
15
我的目的就只想重建但重建不好搞.规律是有.最大问题是遇到程式里面真正的JMP不知如何与乱序的JMP区分.
2006-9-8 20:49
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
16
CCG的悬偿KeyGenMe 被人放到KANXUE来讨论了,有好戏看了
2006-9-8 20:55
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
17
最初由 softworm 发布
我现在没有太多时间,也不碰。


如果CCG不放这个东西的主程序,或者这东西没有流传开,那么将来试练品就不会很多,也就没啥好研究的了
2006-9-8 21:00
0
雪    币: 243
活跃值: (274)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
18
最初由 海风月影 发布
CCG的悬偿KeyGenMe 被人放到KANXUE来讨论了,有好戏看了


我是搞WinMPGVideoConvert破解发现与CCG的CRACKME一样的保护处理.为了不让人家说我求破解.才用CCG的CRACKME说一下这种保护技术的.如果影响到CCG的CRACKME可以转说这个.
WinMPGVideoConvert 中文名 视频压缩专家.
天空软件站可下载.
只想对这种乱序保护比较好奇.难度技术论坛谈技术研究都不行?
2006-9-8 21:01
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
19
如果只有jmp,也许不是很难。可以参考Mental Driller的那篇文章,翻译版有月中人的译文<变形实践>。从程序入口开始全程反汇编,原代码的jmp并不需要特殊处理。

几乎可以照搬该病毒代码的反汇编部分,而且不需要转换为伪代码,应该更简单。反汇编引擎有现成的。清除置换jmp后,一些代码可能需要修正(如Jcc)。

CCG Board上不知道谁把我的ID抢注了,可恶。
2006-9-8 21:38
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
20
最初由 softworm 发布
如果只有jmp,也许不是很难。可以参考Mental Driller的那篇文章,翻译版有月中人的译文<变形实践>。从程序入口开始全程反汇编,原代码的jmp并不需要特殊处理。

几乎可以照搬该病毒代码的反汇编部分,而且不需要转换为伪代码,应该更简单。反汇编引擎有现成的。

CCG Board上不知道谁把我的ID抢注了,可恶。

可以叫SB给你要回来。
2006-9-8 21:40
0
雪    币: 44229
活跃值: (19965)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
21
最初由 小虾 发布
可以叫SB给你要回来。


他自己的ID都曾被抢注,呵~
另外,里面的一个“看雪”不是我注册的,我注册的是kanxue
2006-9-8 21:44
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
22
应该是kanxue吧?
2006-9-8 21:49
0
雪    币: 44229
活跃值: (19965)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
23
纠正了。
现在字是打的快了,但错误率却提高了
2006-9-8 22:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
keygenme还是别公开议论了吧.

softworm老兄的ID去CCG发个申请就能要回来了.

呵呵
2006-9-9 10:17
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
25
最初由 div0 发布
keygenme还是别公开议论了吧.

softworm老兄的ID去CCG发个申请就能要回来了.

呵呵


好的。

我看到这个Crackme Shoooo已经完成了,不知道他就是这样跟的还是有什么好办法。
2006-9-9 10:34
0
游客
登录 | 注册 方可回帖
返回
//