好友
阅读权限10
听众
最后登录1970-1-1
|
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。
本帖最后由 Chief 于 2013-12-14 17:38 编辑
【文章标题】: 吾爱2013CM大赛解答--CrackMe--苏紫方璇 CM分析
【文章作者】: Crack_Qs[4st Team]
【作者主页】: 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:[ebp-0x13C]
0040174A . E8 43060000 call <jmp.&MFC42.#6334> ; 读假码到edx
0040174F . 6A 00 push 0x0
00401751 . 8B8D C4FEFFFF mov ecx,dword ptr ss:[ebp-0x13C]
00401757 . E8 36060000 call <jmp.&MFC42.#6334>
0040175C . 8B8D C4FEFFFF mov ecx,dword ptr ss:[ebp-0x13C]
00401762 . 8B51 60 mov edx,dword ptr ds:[ecx+0x60] ; 用户名到edx
00401765 . 8995 CCFEFFFF mov dword ptr ss:[ebp-0x134],edx
0040176B . 8D85 E4FEFFFF lea eax,dword ptr ss:[ebp-0x11C]
00401771 . 50 push eax
00401772 . 8B8D CCFEFFFF mov ecx,dword ptr ss:[ebp-0x134] ; 用户名到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:[esp+0x10] ; 用户名给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:[edi] ; 取用户名 准备开始运算
算法:
00401550 |> /33C0 /xor eax,eax
00401552 |. |8A03 |mov al,byte ptr ds:[ebx] ; 用户名逐位取ascii值
00401554 |. |8D0440 |lea eax,dword ptr ds:[eax+eax*2] ; 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:[esp+0x14] ; %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[4st team], 转载请注明作者并保持文章的完整, 谢谢!
2013年12月14日 9:58:49
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|