有三个,分别是扫薯携雷世界、扫雷大战、益智版扫雷。下面演示搜索这三个小程序的流程:
演示设备:侍信华为畅享20、EMUI9.1、微信8.01 。
一、进入手机微信发现页,点击打开小程序。
二、 打开小程序界面后,点击右上角搜索按钮。
三、在搜索栏中输入关键词“扫雷”二字,点击搜索。
四、如下图,这时就可以老手轮搜索到这三个扫雷小程序,点击即可开启游玩。
一在开机时,进入”带命令提示符的安全”模式
输入
NET USER+用户名+123456/ADD
可把某用户的密码强行设置为”123456
方法二
如用户忘记登入密码可按下列方法解决
1.在计算机启动时按〔F8〕及选〔Safe Mode With Command Prompt〕
2.选〔Administrator〕后便会跳出〔Command Prompt〕的窗口
3.用〔Net〕的命令增加一个用户,例:增加一个用户名为seek,命令语法如下:
net user seek/add
4、将新增用户提升至Administrator的权力,例:提升刚才增加用户seek的权力,命令语法如下
net localgroup administrators seek/add
5、完成上列步骤后重新启动计算机,在启动画面上便增加了一个用户seek了,选seek进入
6.登入后在〔控制台〕→〔使用者账户〕→选忘记密码的用户,然后选〔移除密码〕后〔等出〕
7.在登入画面中选原来的用户便可不需密码情况下等入(因已移除了)
8.删除刚才新增的用户,在〔控制台〕→〔使用者账户〕→选〔seek〕,然后选〔移除账户〕便可
方法三
1、重新启动Windows XP,在启动画面出现后的瞬间,按F8,选择”带命令行的安全模式”运行。
2、运行过程停止时,系统列出了超级用户administrator和本地用户owner的选择菜单,鼠标点击administrator,进入命令行模式。
3、键入命令神知隐:
net user owner 123456/add
强制性将OWNER用户的口令更改为”123456〃。若想在此添加某一用户(如:用户名为seek,口令为123456) 的话,请键入
net user seek 123456/add
添加后可用
net localgroup administrators seek/add
命令将用户提升为系统管理组administrators用户,具有超级权限。
4.DOS下删windows\system32\config里面的SAM档就可以了
5.开机后按键盘的Delete键进入BIOS界面。找到User Password选项,其默认为关闭状态。启动并输入用户密码(1~8位,英文或者数字)。计算机提示请再输入一遍以确认密码无误,保存退出后重新启动机器,这时就会在开机时出现密码菜单
方法四
如果是FAT32,进入DOS,删除c:winntsystem32configsam*.*就可以了。
登陆只要输入administrator不输密码即可。然后创建一个新的。要是NTFS则无效
另外如果你的系统没有加过微软的输入法补丁的话也可以利用输入法的漏洞去做一个管理员权限账号,
具体方法如猛拿下:
开机后,Win2000自启动,出现登录窗口,显示用户名,并要求输入密码(当然这时你不会有密码)。这时请将输入焦点置于用户名一项,用Ctrl+Shift切换输入法(随便选上一种,只要能出现输入法工具条的就行)。在出现的输入法提示工具条上单击右键,选择帮助,会d出一个帮助窗口。接下来你需要在这个窗口里找到一个(绿色带下划线)超级链接,并用游厅SHIFT+鼠标左键单击,打开它会d出一个IE窗口,请在窗口地址栏里输入c:,到这步你应该很清楚怎么做了。只要点击标准按键的”向上”,会发现你可以进入”控制面板”了,进入后你可以直奔”用户和密码”.
接下发生的事只有你自己知道了。
方法五
我们知道在安装Windows XP过程中,首先是以”administrator”默认登录,然后会要求创建一个新账户,以便进入Windows XP时使用此新建账户登录,而且在Windows XP的登录接口中也只会出现创建的这个用户账号,不会出现”administrator”,但实际上该”administrator”账号还是存在的,并且密码为空。
找到扫雷记录“雷区”的内存就更加有意思了。我这里会介绍两种做法,还有我都是用的Windbg进行调试的。第一种比较猥琐,用到了扫雷的符号文件。
直接输入x winmine!*
//x命令:x 查看模块的符号,如x mydriver!*FastIo*,显示所有与*FastIo*匹配的符号列表
仔细观察扫雷的符号,在符号中有这样的一个。
0:000>x winmine!*
...
0100367a winmine!StartGame = <no type information>
...
这时候可以有两个选择,
1.直接输入bp winmine!StartGameg。
//bp命令:BP 在指定的地址设置断点
//bp notepad!WinMain,在Notepad的WinMain函数处下断点。
然后点击那个黄色的笑脸^_^。
Windbg准确的断在winmine!StartGame了。
输入uf .
//uf指令:uf (Unassemble Function)指令对整个函数进行反汇编
//uf GetLanguageCount
反汇编整个函数,同时仔银也可以单步跟踪函数。
2.直接uf winmine!StartGame,然后分析反汇编代码。
接着可以看到这样的代码
010036c7 ff3534530001pushdword ptr [winmine!xBoxMac (01005334)]
010036cd e86e020000 callwinmine!Rnd (01003940)随机者伏产生x
010036d2 ff3538530001pushdword ptr [winmine!yBoxMac (01005338)]
010036d8 8bf0mov esi,eax
010036da 46 inc esi
010036db e860020000 callwinmine!Rnd (01003940)随机产生y
010036e0 40 inc eax
010036e1 8bc8mov ecx,eax
010036e3 c1e105 shl ecx,5
010036e6 f684314053000180 testbyte ptr winmine!rgBlk (01005340)[ecx+esi],80h 是否已经被设置
010036ee 75d7jne winmine!StartGame+0x4d (010036c7)
winmine!StartGame+0x76:
010036f0 c1e005 shl eax,5
010036f3 8d843040530001 lea eax,winmine!rgBlk (01005340)[eax+esi]
010036fa 800880 or byte ptr [eax],80h 设置地雷
010036fd ff0d30530001dec dword ptr [winmine!cBombStart (01005330)]
01003703 75c2jne winmine!StartGame+0x4d (010036c7)
这里反汇编代码比较简单,大概的意思就是念嫌宴随机产生一个x,y坐标,然后计算坐标所对应的内存的位置。看他是否已经被设置为地雷,如果不是则“or 80h”,设置成地雷,否则跳过。现在就一目了然了,winmine!rgBlk (01005340)就是我们要找的地址。
看看里面存放内存的情况:
0:000>db 01005340
01005340 10 10 10 10 10 10 10 10-10 10 10 0f 0f 0f 0f 0f ................
01005350 0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f ................
01005360 10 0f 0f 0f 0f 8f 0f 0f-0f 0f 10 0f 0f 0f 0f 0f ................
01005370 0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f ................
01005380 10 8f 0f 0f 0f 0f 0f 0f-0f 0f 10 0f 0f 0f 0f 0f ................
01005390 0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f ................
010053a0 10 0f 0f 8f 0f 0f 0f 0f-0f 0f 10 0f 0f 0f 0f 0f ................
010053b0 0f 0f 0f 0f 0f 0f 0f 0f-0f 0f 0f 0f 0f 0f 0f 0f ................
0fh就是没有地雷的地方,而80h or 0fh = 8f就是我们要找的地雷了。
第二种方法,比借助扫雷的符号,这个方法同样适用于Ollydbg。
输入bp msvcrt!randg
断在了rand中,然后gu,
发现所在的函数只是rand的一个简单的封装,参数一个只是用来取模的。
继续gu,
OK,发现了一段代码,这段代码第一种方法得到的代码是一样的。也是同样的取得了01005340这个地址。
最后说一下,如果是编写作弊程序,只需要遍历01005340这里的内存就足够了,逐行扫描。
伪代码:
PBYTE BufferHead = 0x01005340
for (int y = 1y <10y++)
for(int x = 1x <10x++)
{
int Cnt = x + y * 32;
if ((BufferHead[Cnt] &0x80) != 0)
{
//Good luck, you have got a mine!
DoSometing()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)