Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

作为一位外挂初学者如何用od和ida pro来写一份扫雷外挂

Notifications You must be signed in to change notification settings

ASUSNOAH/HackerMinesweeper

Repository files navigation

HackerMinesweeper

作为一位外挂初学者如何用od和ida pro ce来写一份扫雷外挂 首先猜测一下扫雷的算法 自定义布局的时候会改变雷的数量和宽高
废话不多说 打开CE查询数值 发现宽保存在0x10056A8而这是个全局变量(CE为绿色基址) 用相同的方法也能找到雷的数量和高度都是基址

  • 第一步找到初始化函数遂转到od在0x10056A8上下内存访问断点 断在如图所示的地方往上找 找函数开始的地方分析得到函数头应该是 0x0100367A
    Image text
  • 遂转到ida中查看 F5大法
    Image text
    关键算法应该在这里
 while ( *(&byte_1005340[32 * v2] + v1) & 0x80 );
 *(&byte_1005340[32 * v2] + v1) |= 0x80u;
 --dword_1005330;


我们可以得到1005340保存是一张表 一张整个雷的表 而且在这个地方 标志雷的位置

  • 在od中用db的方式查看这张表并且加0x20(即是32) 发现这是以32为一个轮 排开开头10 就是31个 读到这里有人就可能会问了要是大于31怎么办这岂不是这个程序就会出错吗
    后来发现这个宽度最大只有30(完美避开了bug)
    Image text 显而易见0x8F就是代表着雷 这样算法就很简单了 只要开头读出这张表就能获得雷的位置 然后通过mouse_event就能开外挂了
  • 怎么写一个外挂 假设我们是新手
    • 第一步我们得获取进程句柄就是这样的素质三连 handle就是我们所需
hwnd=FindWindow(L"扫雷",nullptr);
GetWindowThreadProcessId(hwnd, &lppid);
handle=OpenProcess( PROCESS_ALL_ACCESS, false,lppid);

后面的就是读表 写算法 我都在代码中已经给出来了
最后的效果
Image text
当然其他的文章大家也能看看
最后就是我永远喜欢珂朵莉!!!
Image text

About

作为一位外挂初学者如何用od和ida pro来写一份扫雷外挂

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 76.6%
  • QMake 23.4%

AltStyle によって変換されたページ (->オリジナル) /