发一个cm。。标题要长。。
本帖最后由 z26650 于 2011-1-17 12:21 编辑那个,论坛终于恢复了。。还是像原来一样,仍一个cm。。这cm是我过去的一个cm'修改而成的。。基本上不会有什么bug。。如果遇到了,就是RP问题了,补充一下。只有出现OK才是破解成功.{:1_918:}
第一次看到控制台的CM 回复 lkou 的帖子
话说那个。。我原来也发过控制台的cm的。。。{:1_908:}被无视了吗{:1_937:}
本帖最后由 lkou 于 2011-1-17 11:47 编辑
我很少来这个区的。。。。。 话说。。这cm没人玩吗- -{:1_904:}
偶又被打击了- - 刚下来看了看,完全不懂
回复 mycc 的帖子
应该说还差半步。。最后应该是OK才是正确的。。KK的话字符串解码不对哦- -
哦,我刚才粗心了,调试的太快每看清楚要求,再来一次
xor b,49
ok
版主帮我+分,我这里也只能简单的说说过程,主要原算法,我没耐心去看,昨晚下来后,转了几下
找到关键点,发现是明码形式的,但在动态内存段下个断点,竟然崩溃了
找了找,发现问题在
cmp dword ptr , 0F4240
jl xxxx ( 我用的是 WIN7 ,动态内存,每次不同,太FUCK了)
可以在启动后搜索上面的那条 CMP ,然后把下面修改为 jg xxxxxx
————————————————————————
然后你就进入算法阶段了,经历过一阵痛苦的 F8 后,发现太令人烦躁了(我这人就缺乏耐心啊,无语),
唯有,继续无视算法,继续以一个革命者的精神CTRL+F12看看这个同志死在那里,结果发现了敌人的踪影
013A79E0 call 013A7800
013A79E5 call 013AFBA2 程序在这里停了,进入一看原来不是它,回头找到 CALL 13A7800 处
—————— 进入 13A7800 后 , 你懂的
013A7848 cmp ebx, dword ptr 此时 中的值就是第一个验证码
013A784E jnz short 013A7884
好了,穿过了第一重关卡,我没留意楼主的帖子,原来要 OK才是正确 (开始我输入 2222222 得到 KK 以为成功了 )
于是对 KK 在内存中对 KK 字符地址,下硬件写入断点,发现原来需要解码
01206F20 push ebp
01206F21 mov ebp, esp
01206F23 sub esp, 34
01206F26 mov dword ptr , ecx
01206F29 nop
01206F2A mov eax, dword ptr 提取第一个字符
01206F2F sub eax, 30
01206F32 mov dword ptr , eax
01206F35 fild dword ptr
01206F38 fstp qword ptr
01206F3B mov ecx, dword ptr 提取第二个字符
01206F41 sub ecx, 30
01206F44 mov dword ptr , ecx
01206F47 fild dword ptr
01206F4A fstp qword ptr
01206F4D fld qword ptr
01206F50 call 012204F8
01206F55 call <__ftol2_sse>
01206F5A mov dword ptr , eax
01206F5D fild dword ptr
01206F60 fstp qword ptr
01206F63 fld qword ptr
01206F66 call <__CIlog>
01206F6B fmul qword ptr
01206F6E call <__ftol2_sse>
01206F73 mov dword ptr , eax
01206F76 mov dl, byte ptr
01206F79 mov byte ptr , dl
01206F7C mov al, byte ptr
01206F7F mov byte ptr , al
01206F82 mov dword ptr , 0
01206F89 jmp short 01206F94
01206F8B mov ecx, dword ptr
01206F8E add ecx, 1
01206F91 mov dword ptr , ecx
01206F94 cmp dword ptr , 2
01206F98 jge short 01206FB9
01206F9A mov edx, dword ptr
01206F9D movsx eax, byte ptr
01206FA2 mov ecx, dword ptr
01206FA5 movsx edx, byte ptr
01206FAC xor eax, edx EDX 为变量 0x49
01206FAE mov ecx, dword ptr
01206FB1 mov byte ptr , al 解码完毕写入最后显示字符
01206FB7 jmp short 01206F8B
01206FB9 mov esp, ebp
01206FBB pop ebp
于是,只要你的第一个字符经过浮点后,来到 1206FAC 时是 6( xor eax_6,edx_0x49 = 0x4F 0 )
第二个字符来到 2( xor eax_2,edx_0x49 = 0x4B K )
世界和谐了
回复 mycc 的帖子
本来以为这是这个系列的最后一个版本了。。看了之后发现。。还可以更新。。。
页:
[1]
2