【吾爱2013CM大赛解答】----CrackMe -- 苏紫方璇 CM分析
本帖最后由 Chief 于 2013-12-14 17:38 编辑【文章标题】: 吾爱2013CM大赛解答--CrackMe--苏紫方璇 CM分析
【文章作者】: Crack_Qs
【作者主页】: www.reversesec.com
【软件名称】: CrackMe -- 苏紫方璇
【下载地址】: http://www.52pojie.cn/thread-228417-1-1.html
【操作平台】: win xp
【作者声明】: 我是打酱油的,失误之处敬请诸位大侠赐教! 技术支持:Peace、kido
--------------------------------------------------------------------------------
【详细过程】
前面就不写了,跑了一遍没什么东西。
00401742 > \6A 01 push 0x1 ;开始计算的准备工作
00401744 .8B8D C4FEFFFF mov ecx,dword ptr ss:
0040174A .E8 43060000 call <jmp.&MFC42.#6334> ;读假码到edx
0040174F .6A 00 push 0x0
00401751 .8B8D C4FEFFFF mov ecx,dword ptr ss:
00401757 .E8 36060000 call <jmp.&MFC42.#6334>
0040175C .8B8D C4FEFFFF mov ecx,dword ptr ss:
00401762 .8B51 60 mov edx,dword ptr ds: ;用户名到edx
00401765 .8995 CCFEFFFF mov dword ptr ss:,edx
0040176B .8D85 E4FEFFFF lea eax,dword ptr ss:
00401771 .50 push eax
00401772 .8B8D CCFEFFFF mov ecx,dword ptr ss: ;用户名到ecx
00401778 .51 push ecx ;压
00401779 .E8 92FDFFFF call CrackMe.00401510 ;关键call
00401510/$83EC 08 sub esp,0x8
00401513|.53 push ebx
00401514|.8B5C24 10 mov ebx,dword ptr ss: ;用户名给ebx
00401518|.57 push edi
00401519|.8BFB mov edi,ebx ;到edi
0040151B|.83C9 FF or ecx,0xFFFFFFFF
0040151E|.33C0 xor eax,eax
00401520|.F2:AE repne scas byte ptr es: ;取用户名 准备开始运算
算法:
00401550|> /33C0 /xor eax,eax
00401552|. |8A03 |mov al,byte ptr ds: ;用户名逐位取ascii值
00401554|. |8D0440 |lea eax,dword ptr ds: ;ASCII+ASCII*2
00401557|. |99 |cdq
00401558|. |2BC2 |sub eax,edx
0040155A|. |D1F8 |sar eax,1 ;strlen(a1) + 1
0040155C|. |25 FF000000 |and eax,0xFF ;64,AB,91,94,A0,8E,79,AC
00401561|. |50 |push eax
00401562|. |8D4424 14 |lea eax,dword ptr ss: ;%02X;C语言的,不解释了。
00401566|. |50 |push eax
00401567|. |56 |push esi
00401568|. |FFD5 |call ebp ;printf();函数
0040156A|. |83C4 0C |add esp,0xC ;printf("%02x",0x64);
0040156D|. |83C6 02 |add esi,0x2
00401570|. |43 |inc ebx
00401571|. |4F |dec edi
00401572|.^\75 DC \jnz XCrackMe.00401550
key:
Crack_Qs
64AB9194A08E79AC
以下为推测:
sar = strlen(a1) + 1;
if ( (signed int)(sar - 1) > 0 )
{
v5 = Dest;
b = sar - 1;
do
{
printf("%02X",n);
++i;
--b;
}
while ( b );
}
--------------------------------------------------------------------------------
【版权声明】: 本文原创于Crack_Qs, 转载请注明作者并保持文章的完整, 谢谢!
2013年12月14日 9:58:49
前排支持大大!我去,算法都被逆出来了 QS牛就是厉害。直接逆出算法。。膜拜 来膜拜 QS大大 QS永远都那么简洁 利索.. 前来膜拜QS牛!大牛啊。 膜拜大牛。。。。{:1_931:} 膜拜大牛,尽然可以逆出算法
页:
[1]