|
发表于 2010-3-4 13:11:49
|
显示全部楼层
原帖由 lgjxj 于 2010-3-4 10:26 发表 [img]
[/img]
好,明天休假整理一下,可以发出来的,不过,效果一定很烂 /:010
期待中......
昨天下载这个CM丢进IDA分析的时候,发现VM代码似曾相识。
这才想起曾经拜读过cyclotron大牛的文章.
所以用了一会儿功夫就看明白了CM算法原理
/:014
此CM的VM分析文章在此:《VMCrackME----A Preliminary Virtual Machine From Top To Bottom》
直接举例子简单说一下算法的原理:
name: hflywolf (最大16个字符)
key : 932424524 (最大16个字符)
name的运算过程如下:
hflywolf 的ASCII 10进制值分别为:104 102 108 121 119 111 108 102
n = 2*104*102*108*121*119*111*108*102 = 40342842985116672
n = 40342842985116672 + 127(0x7F) = 40342842985116799
n = 40342842985116799 and 4294967295 = 425423999
key 的运算过程如下:
将输入的932424524 转成整数 (注:下面的10(i) 代表10的i次方 其中i=0,1,2,3,...,...,i)
m = 9*10(0) + 3*10(1) + 2*10(2)+ 4*10(3) + 2*10(4) + 4*10(5) + 5*10(6) + 2*10(7) + 4*10(8) = 425424239
m = 425424239 - 235(0xEB) - 5 = 425423999
当m = n 时 才将Wrong! 字符改成True
[ 本帖最后由 hflywolf 于 2010-3-4 14:08 编辑 ] |
|