CrackMe#71 浮点

晕啊..碰到一个考数学的…

004013EE  |> \DD45 F8       fld     qword ptr [ebp-8]
004013F1  |.  D9FE          fsin
004013F3  |.  DD5D A8       fstp    qword ptr [ebp-58]
004013F6  |.  DD45 F0       fld     qword ptr [ebp-10]
004013F9  |.  D9FE          fsin
004013FB  |.  DD5D A0       fstp    qword ptr [ebp-60]
004013FE  |.  DD45 A8       fld     qword ptr [ebp-58]
00401401  |.  DC4D A0       fmul    qword ptr [ebp-60]               ;  sin*sin
00401404  |.  DF2D 30304000 fild    qword ptr [403030]
0040140A  |.  DEC9          fmulp   st(1), st                        ;  *
0040140C  |.  83EC 08       sub     esp, 8
0040140F  |.  DD1C24        fstp    qword ptr [esp]
00401412  |.  E8 D1000000   call    <jmp.&CRTDLL.floor>
00401417  |.  83C4 08       add     esp, 8
0040141A  |.  DD5D 98       fstp    qword ptr [ebp-68]
0040141D  |.  D9EE          fldz                                     ;  将0.0装入st(0)
0040141F  |.  DC5D 98       fcomp   qword ptr [ebp-68]
00401422  |.  DFE0          fstsw   ax
00401424  |.  9E            sahf
00401425      75 05         jnz     short 0040142C
上面关键算法

继续阅读“CrackMe#71 浮点”

CrackMe#68 The ed of 2011

今天是2012倒数第二天,当然CM也会别具一格~

今天的难度系数在过去所有中能排前10….

关键点A:

@@:
bt      dword ptr [esi+4], ecx
jb      @F
dec     ecx
jmp     @B
@@:

显然bt伪指令..我们先查查bt伪指令的用法:

BT是位测试指令,源自80×86

格式: BT OPD,OPS
功能: 目的操作数OPD中由源操作数OPS指定的位送CF标志
位检测指令是把第一个操作数中某一位的值传送给标志位CF,具体的哪一位由指令的第二操作数来确定。 
简单的说是CF==1时@F跳转~
BT(Bit Test):
举个例子:
bt eax,ecx  ;eax=0xAB24AD89 ecx=0x1D
我们知道 eax化成二进制:
1010 1011 0010 0100 1010 1101 1000 1001   
0x1D=29.
而第29位是:1

1010 1011 0010 0100 1010 1101 1000 1001
所以这句指令运行后 CF==1符合JB要求的 
学以致用 在本CM中是对0x13F位进行测试的.可谓是对BT指令的更深层应用
所以BT指令的使用在本CM中觉得堪称一绝!
先把整个CM逆出来先!
经过一天的DASM  这一个逆向出来的源码 算法基本一致`MySource
结合源码&原CM一起分析不难发现这个CM的算法还是非常不错的~

CrackMe#67 自校捡技术&遍历进程

MASM写的啊….经过N个PHICM之后又回归MASM  一种非常熟悉的编码结构  看着真是舒服啊 噢~嗷

这个CM除了算法上耍了点小花招之外~

还加入了自校捡  整个CM DASM过程中就像是温习教科书一样的感觉~

总体来说还OK拉~

还一个就是加上了遍历进程~

这个HIDE OD OPTION就完美解决问题=.=

相比之下  两天前的自创建进程然后把权限叫给所创建的进程来说…呃

一组Key:

ShadowKong

PBVF7OB-JBUM8IP-231QUG2-6VK6JZ9

DownMe