飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 4958|回复: 8

[原创] Baymax 在明码比较软件中的提示框中显示注册码

[复制链接]

该用户从未签到

发表于 2020-3-3 23:42:59 | 显示全部楼层 |阅读模式
大白群里讨论下一款明码比较软件的另类改法,其实就是先存储,后使用的一个设置方案。
1.png

OD 载入分析,模块基地址 00400000

真码位置:
0042AA33 | 68 74854500              | push magebros.458574                            | 458574:"MB-3186-2945"   // 00458574 指向的字符串为真码
0042AA38 | 8D4C24 20                | lea ecx,dword ptr ss:[esp+20]                   | ecx:EntryPoint

1.png

注册后的提示框:
0042AE5C | E8 8FFBFFFF              | call magebros.42A9F0                            |
0042AE61 | A1 ECAB4600              | mov eax,dword ptr ds:[46ABEC]                   |
0042AE66 | 8378 28 00               | cmp dword ptr ds:[eax+28],0                     | [eax+28]:EntryPoint
0042AE6A | 74 13                    | je magebros.42AE7F                              | 若注册成功弹框提示
0042AE6C | 6A 40                    | push 40                                         |
0042AE6E | 68 A4754500              | push magebros.4575A4                            | 4575A4:"Mage Bros."
0042AE73 | 68 A8854500              | push magebros.4585A8                            | 4585A8:"Thank you! You have successfully registered Mage Bros."
0042AE78 | 56                       | push esi                                        | esi:EntryPoint
0042AE79 | FF15 58724500            | call dword ptr ds:[<&MessageBoxA>]              |
0042AE7F | 5E                       | pop esi                                         | esi:EntryPoint
0042AE80 | C3                       | ret                                             |

2.png


第一步、保存真码字符串地址

12.png

执行到 0042AA38 时,注册码字符串地址 00458574 压入堆栈,我们这时可从堆栈中获取并保存该字符串(key)地址,存储内存地址为 ESP+0,类型为 DWORD,捕获一次即可。

注意:界面设置的是欲存储数据的内存地址,此处输入的是 ESP 栈顶地址,即内存数据 00458574 的数据地址。

ESP  栈地址内存地址)               栈空间内存数据
+0    0019FC14----------------------------00458574
+4    0019FC18----------------------------83B145EE


此处不要设置为[ESP+0]
,[ESP+0]存储的数据就是 0x332D424D 了。
00458574  4D 42 2D 33 31 38 36 2D 32 39 34 35 00 00 00 00  MB-3186-2945....  

即:
设置 ESP+0  存储的就是 [ESP+0]
设置 [ESP+0] 存储的就是 [[ESP+0]]

如果做内存注册机,此处存储ASCII字符串,设置存储地址就是[ESP+0]了。

baymax 中设置如下:
11.png

第二步、NOP跳转,点注册即弹框。

注:NOP 不是去修改指令为 90 90,而是修改EIP=EIP+该指令长度。
13.png

第三步、使用存储数据替换弹框内容

执行到 0042AE73 时,堆栈压入了 MessageBox 的标题参数,此时用我们保存的 DWORD 取替换掉栈顶 ESP 指向的栈内存数据。

14.png

注意:使用存储的数据要与存储数据的格式一致。这里替换的数据地址为 ESP+0(即欲修改内存数据的地址)。

15.png

同理在 0042AE78 地址换掉 MessageBox 的另一个参数即可。


MageBros.part1.rar

1.5 MB, 下载次数: 14, 下载积分: 飘云币 -2 枚

目标程序

MageBros.part2.rar

1.15 MB, 下载次数: 17, 下载积分: 飘云币 -2 枚

目标程序

评分

参与人数 5威望 +5 飘云币 +5 收起 理由
wjzzhtgp + 1 + 1 原创精品 感谢分享!
哥又回来了 + 1 + 1 赞一个,这个帖子很给力!
不破不立 + 1 + 1
Arsage + 1 + 1 PYG有你更精彩!
飞天 + 1 + 1 感谢发布原创作品,PYG有你更精彩!

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    开心
    半小时前
  • 签到天数: 1102 天

    [LV.10]以坛为家III

    发表于 2020-3-4 14:45:42 | 显示全部楼层
    很经典,以后会碰到像这样的补丁方法
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-4-11 09:12
  • 签到天数: 614 天

    [LV.9]以坛为家II

    发表于 2020-3-4 17:20:53 | 显示全部楼层
    这样的补丁方式追溯到winzip 7.0,那时见到的 第一印象是“兴奋“
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    前天 09:19
  • 签到天数: 1853 天

    [LV.Master]伴坛终老

    发表于 2020-3-4 17:43:38 | 显示全部楼层
    谢谢表哥分享。希望能发多点类似的教程出来,继续学习。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    22 分钟前
  • 签到天数: 857 天

    [LV.10]以坛为家III

    发表于 2020-3-5 10:18:00 | 显示全部楼层
    谢谢楼主分享,辛苦了!!!!!路过支持一下!!!!!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-4-18 11:57
  • 签到天数: 1513 天

    [LV.Master]伴坛终老

    发表于 2020-3-5 22:11:22 | 显示全部楼层
    学习一下,谢谢校长,记下来了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 23:17
  • 签到天数: 2134 天

    [LV.Master]伴坛终老

    发表于 2020-3-5 22:27:39 | 显示全部楼层
    謝謝校長提供的經驗,好好學習
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 19:54
  • 签到天数: 1378 天

    [LV.10]以坛为家III

    发表于 2020-3-6 09:15:48 | 显示全部楼层
    对于本强迫症患者来说,还是希望大白能直接修改/获取这些变量数值.......
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表