-
-
[旧帖]
[原创]破解并编程读取学校机房Returnil还原软件密码
0.00雪花
-
发表于:
2011-6-8 13:44
5951
-
[旧帖] [原创]破解并编程读取学校机房Returnil还原软件密码
0.00雪花
【文章标题】: 破解并编程读取学校机房Returnil还原软件密码(新人第一次申请邀请码)
【文章作者】: 玉界龙儿
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: OllyDBG + 记事本 + VC6.0
【操作平台】: windows 2003
【作者声明】: 这是我这个新手的首个作品,虽然技术含量不高,但是希望能得到大家的点评。
学校实验室机房所用的还原软件是Returnil,想装软件装不上,总是被还原,关于选项中没有列出版本号,可能是破解版的吧,不过看版权的年份还是比较久的了,最适合新手练习了,如<图一>
用任务管理器看看进程,Returnil的进程是MRVS.exe,结束进程没有效果,重启依然还原,这是很明显的,这个应用程序只不过是负责和底层驱动进行通讯而已。
双击任务栏上反转的R的图标,弹出一个输入密码提示框,<图二>所示
随便输入一个密码,点击确定,窗口直接关闭,没有任何提示。
拿出OllyDBG 附加进程MRVS.exe,附加后,在右键->view->module "MRVS",就可以到达MRVS的代码段(ps:有时,选择模块的时候没有立刻跳转到对应的代码段,可以选多几次)
利用右键->Ultra String Reference->FindASCII,然后找到关键的字符串,如<图三>所示
有两个很相似的字符串,可以看出第一个是重设密码的窗口,第二个是我们想要的,在OO4C72AB上面双击,跟进代码段,按ctrl+A分析一下
004C72A8 . 53 push ebx
004C72A9 . 8BD8 mov ebx, eax
004C72AB . BA 04734C00 mov edx, 004C7304 ; returnil影子系统(多分区版)
004C72B0 . 8BC3 mov eax, ebx
004C72B2 . E8 8D50F8FF call 0044C344
004C72B7 . BA 28734C00 mov edx, 004C7328 ; 请输入管理员密码
004C72BC . 8B83 04030000 mov eax, dword ptr [ebx+304]
004C72C2 . E8 7D50F8FF call 0044C344
004C72C7 . BA 44734C00 mov edx, 004C7344 ; 密码:
004C72CC . 8B83 F8020000 mov eax, dword ptr [ebx+2F8]
004C72D2 . E8 6D50F8FF call 0044C344
004C72D7 . BA 54734C00 mov edx, 004C7354 ; 确定
004C72DC . 8B83 0C030000 mov eax, dword ptr [ebx+30C]
004C72E2 . E8 5D50F8FF call 0044C344
004C72E7 . BA 64734C00 mov edx, 004C7364 ; 取消
004C72EC . 8B83 10030000 mov eax, dword ptr [ebx+310]
004C72F2 . E8 4D50F8FF call 0044C344
004C72F7 . 5B pop ebx
004C72F8 . C3 retn
004C7D01 . 8B45 FC mov eax, dword ptr [ebp-4]
004C7D04 . E8 0B46F8FF call 0044C314
004C7D09 . 8B55 F0 mov edx, dword ptr [ebp-10]
004C7D0C . 8B45 F4 mov eax, dword ptr [ebp-C]
004C7D0F . E8 3046F8FF call 0044C344
004C7D14 . 8B45 F4 mov eax, dword ptr [ebp-C]
004C7D17 . 8B10 mov edx, dword ptr [eax]
004C7D19 . FF92 EC000000 call dword ptr [edx+EC] ; 密码提示框出现
004C7D1F . 48 dec eax
004C7D20 . 75 27 jnz short 004C7D49
004C7D22 . 8D55 EC lea edx, dword ptr [ebp-14]
004C7D25 . 8B45 F4 mov eax, dword ptr [ebp-C]
004C7D1F . 48 dec eax
004C7D20 . 75 27 jnz short 004C7D49
004C7D22 . 8D55 EC lea edx, dword ptr [ebp-14]
004C7D25 . 8B45 F4 mov eax, dword ptr [ebp-C]
004C7D28 . 8B80 FC020000 mov eax, dword ptr [eax+2FC]
004C7D2E . E8 E145F8FF call 0044C314 ; 这个call后,堆栈出现刚才输入的错误密码
004C7D33 . 8B45 EC mov eax, dword ptr [ebp-14]
004C7D36 . E8 A1C6F3FF call 004043DC
004C7D3B . 50 push eax
004C7D3C . E8 BBFEFFFF call <jmp.&MRVS.fcCheckPassword> ; 这个名字很容易理解
004C7D41 . 84C0 test al, al ; 判断返回值是否为0
004C7D43 . 74 04 je short 004C7D49 ; 关键跳转
004C7D45 . C645 FB 01 mov byte ptr [ebp-5], 1
004C7D49 > 33C0 xor eax, eax
004C7D4B . 5A pop edx
004C7D4C . 59 pop ecx
004C7D4D . 59 pop ecx
004C7D4E . 64:8910 mov dword ptr fs:[eax], edx
004C7D51 . 68 667D4C00 push 004C7D66
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课