逆向笔记

您所在的位置:网站首页 极域网络设置 逆向笔记

逆向笔记

#逆向笔记 | 来源: 网络整理| 查看: 265

前言:

学校上计算机课时,经常敲代码敲到一半就被老师广播屏幕,这很无奈。其实一种简单的方法是任务管理器里结束 StudentMain.exe 便可躲过屏幕广播。但无法接收文件,同时老师讲课重要点没听到。不是一种好办法,拿了点时间破解了极域,记录一下破解的过程发上博客。不是为了获得什么利益,破解只是为了破解本身。

修改了两个地方,爆破跳转使极域学生端可以任意密码进入设置页面和窗口化广播屏幕。窗口化可以边听课边写代码或者跟着老师的步骤走,如果不想听,最小化窗口就行了,脱离控制,方便!

环境 操作系统:Win7 x64位 极域版本:v4.0 2015豪华版

在这里插入图片描述 逆向过程正文:

一、破解密码

打开olldbg,我这里使用是吾爱破解专版od,打开极域学生端的设置窗口,然后附加 StudentMain.exe 进程 在这里插入图片描述 附加后F9运行起来,在极域输入错误的密码进入,没有提示错误信息框,只是窗口左右摇几摇表示密码不正确,由此判断只有输入正确密码才有反应,信息收集的差不多了,我们探讨找到关键破解点的思路 遇到这种无错误提示框时,一般用两种方法:

下断点 GetWindowText 。绝大多数程序点击确定按钮后,会获取到编辑框里的内容,然后通过和正确的密码对比,而GetWindowText函数就是获取组件的标题/文本内容。拦截消息断点,并设置按钮放开的消息条件,这样,当用户点确定后放开,就会被拦下来了。

由于第二种方法设置太过繁琐,舍之。我们采取第一种方法。

对于这样的编辑框中输注册码的程序我们要设断点首选的 API 函数就是 GetDlgItemText 及 GetWindowText。每个函数都有两个版本,一个是 ASCII 版,在函数后添加一个 A 表 示,如 GetDlgItemTextA,另一个是 UNICODE 版,在函数后添加一个 W 表示。如 GetDlgItemTextW。对于编译为 UNCODE 版的程序可能在 Win98 下不能运行,因为 Win98 并非是完全支持 UNICODE 的系统。而 NT 系统则从底层支持 UNICODE,它可 以在操作系统内对字串进行转换,同时支持 ASCII 和 UNICODE 版本函数的调用。一般 我们打开的程序看到的调用都是 ASCII 类型的函数,以“A”结尾。

GetWindowText 函数功能:

该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控件,则拷贝控件的文本。但是,GetWindowText可能无法获取外部应用程序中控件的文本,获取自绘的控件或者是外部的密码编辑框很有可能会失败。 函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);

在命令窗口中输入

bp GetWindowTextW

然后回车,就成功了,我们在od下可以按Alt + B查看有没有成功下断点。 下断点 下完断点,点击确定按钮,这时,你会发现,还没点确定,鼠标移动到极域的窗口时就已经断下来了,为什么呢? 因为鼠标移动到窗口、或者点击某个按钮时,程序都会调用GetWindowTextW获取当前鼠标位置的焦点内容,这点我们可以不管,我们只想获取编辑框的内容,所以先让鼠标移动到确定按钮,然后回到OD按F9运行至没有断下来,点确定按钮,程序断下来第一次不是我们想要的,因为它还会获取按钮这个控件的标题。所以再运行一次,断下来时堆栈如图所示,class=‘Edit’表示获取编辑框的内容啦。 断点位置 先说明一下,我输入了一个错误密码是“123”,而进入设置页面的正确密码是“up”。 好了,Ctrl + F9 执行到返回,然后F8一步步回到程序领空这个位置在这里插入图片描述

输入的错误密码已经出现在寄存器了,摸索下面的代码,就发现了可疑点

0044FA4E . 68 F4884F00 push StudentM.004F88F4 ; UNICODE "mythware_super_password" 0044FA53 . 8D4C24 0C lea ecx,dword ptr ss:[esp+0xC] 0044FA57 . FF15 4CA04E00 call dword ptr ds:[


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3