吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 23187|回复: 67
收起左侧

[Windows] 给exe添加一个启动时的消息框

  [复制链接]
银太 发表于 2013-10-12 02:32
本帖最后由 银太 于 2013-10-13 00:48 编辑

前几分钟刚注册的吾爱破解论坛   现在发个贴子,呵呵,新手,不知道会不会有违反版规的情况

先说下我说的这个教程是啥吧,运行计算器后先弹出一个消息框

12.jpg

点击确定然后计算器正常出现

13.jpg

好了,废话不多说,开始了,文字加图片。

使用的软件是:  任意版本OD,winxp系统自带计算器。  这两个东西应该都很好找吧

首先用OD载入计算器,,这个不会的话建议不要往下看了

然后我的od就停在入口点了,我的这个是 1012475 这个位置  如图

图一

图一


我们复制从前三行的内容。  选中前三行-右键复制-到剪切板。 然后打开记事本ctrl+v粘贴进去,记事本这个东西很有用啊

2.jpg

3.jpg

回到OD,在程序结尾部分找一段0区域,就是结尾处空白的地方 ,HEX数据是 00 的地方 (我不知道0区域是不是这么说的,反正我是这么理解的)

右键-查找-二进制字串。   HEX那里填好多0然后确定会很快找到

4.jpg

如果找到了但是看到后面还有数据的(后面HEX还有不是00的),可以右键-查找-下个(快捷键ctrl+l)找到尾部的00

我找到的00区域是从 10136AF处开始的,你也可以直接ctrl+g定位到这里

我们空几行,别离人家程序太近嘛,呵呵。大约空个几行就好了。

我们从10136B4 开始反汇编  

push 0
PUSH 10136B6
PUSH 10136BB
PUSH 0

妈呀太费事了,想不到写个东西这么费劲 ……  半天写这么点。。好吧我坚持下,下面的稍微不这么详细了,太费时间

现在到od-右键-查找-所有模块间的调用

出来的对话框点一下目标文件,排序一下好找。我们找 USER32.MessageBoxW

找到第一个双击,我的第一个的地址是 100209C 我们在这个地址上空格,复制这段文字ctrl+v粘贴进记事本 ,我的是CALL DWORD PTR DS:[10011A8]   复制到记事本以后用。有可能不一样,按你的就行

然后回到刚刚汇编的那个地方,ctrl+g 定位到 10136B4

紧接着继续汇编,空格,粘贴刚刚复制的东西  (我的是CALL DWORD PTR DS:[10011A8])

5.jpg

这样弹出消息框的部分就完成了,四个push加一个call就是弹消息框的,忘了这就话是谁说的了

然后我们继续接着汇编,第一次粘贴到记事本里面的东西,就是od在入口点那三行

PUSH 70
PUSH 010015E0
CALL 010127C8

写完这三行以后加一句  jmp 1012481  就是再跳到运行计算器程序那边

6.jpg

我的这个语文不好啊,写的顺序有点乱,现在双击 右边寄存器那边的 EIP 就到了程序入口点

7.jpg

我们选中前三行,右键-二进制-用 NOP 填充

8.jpg

然后选中填充的第一行,也就是入口点 汇编 jmp 10136B4  也就是我们找到的00地方汇编的第一个地址

9.jpg

到这里可能有些人就知道是怎么回事了。       程序运行,先跳到我们的程序,执行弹出消息框,然后再回到原程序继续执行,就是这么个过程

然后你可以试一下,右键复制到可执行文件,所有修改-全部复制,再右键-保存文件。自己保存,执行一下弹出一个乱码的对话框

因为我们没有指定它弹出的内容。

好,我们继续,关掉对话框继续汇编

ctrl+g 定位到 刚刚汇编的地方  10136B4

隔着我们写的汇编,再空几行  我们选 10136DD

从10136DD 多选几行,大概三十行吧,选好后右键-二进制-编辑,在UNICODE里面键入  “hello world” (这么经典的东西。)如果刚刚你选少了就装不下这么多字了。

10.jpg

然后确定。 我们把刚刚的

push 0
PUSH 10136B6
PUSH 10136BB
PUSH 0

改一下,改成

push 0
PUSH 10136DD
PUSH 10136DD
PUSH 0

第二次push的是消息框的标题,第三次push的是消息框的内容,我们为了省事就写一样的(第一是按钮样式,自己完了可以改 1、2、3、4、瞎看看。第四个不要乱改了。似乎是窗口句柄还是父窗口句柄忘了)

11.jpg

然后再复制到可执行文件就可以弹出一个 hello world 的消息框了。教程结束好费劲。

这个方法对大多数windows程序应该都可以添加消息框。
至于里面的东西自己要学会,收人以鱼不如收人以渔。
第一次写,各位见笑了,不足之处请批评了。   
最后附上本人的计算器..方便不是XP系统的或者无聊删了计算器的。
这附件咋还要CB啊。。免CB http://good.gd/2750214.htm
关于显示中文的问题,OD的二进制编辑似乎有问题,用别的东西查一下编码就好了。“你好”的UNICODE 是 604F7D59 填这个就可以现实"你好"的中文了。帖子再发一个转换字符的工具
16.jpg
15.jpg

14.jpg


其实写了这么多也就改了两个地方

1.jpg
01012475 > $ /E9 3A120000                 JMP 010136B4
0101247A     |90                                     NOP
0101247B     |90                                     NOP
0101247C     |90                                     NOP
0101247D     |90                                     NOP
0101247E     |90                                     NOP
0101247F     |90                                     NOP
01012480     |90                                     NOP
01012481   > |33DB                               XOR EBX,EBX
2.jpg
010136B1      00                                     DB 00
010136B2      00                                     DB 00
010136B3      00                                     DB 00
010136B4   >  6A 00                               PUSH 0
010136B6   .  68 DD360101                   PUSH 010136DD
010136BB   .  68 EA360101                   PUSH 010136EA
010136C0   .  6A 00                                PUSH 0
010136C2   .  FF15 A8110001                CALL DWORD PTR DS:[10011A8]
010136C8   .  6A 70                                PUSH 70
010136CA   .  68 E0150001                    PUSH 010015E0
010136CF   .  E8 F4F0FFFF                    CALL 010127C8
010136D4   .^ E9 A8EDFFFF                   JMP 01012481
010136D9      00                                     DB 00
010136DA      00                                     DB 00
010136DB      00                                     DB 00
010136DC      00                                     DB 00
010136DD   .  6800 6500 6C00 6C00 6F00 0000     ; 这个右键-二进制-编辑   在HEX那里粘贴
010136E9      00                                     DB 00
010136EA   .  60 4F 7D 59 00                                   ; 这个右键-二进制-编辑   在HEX那里粘贴
010136EF      00                                     DB 00
010136F0      00                                     DB 00

最后这俩图是所有修改过的地方

免CB  http://good.gd/2750343.htm    (字串编码查看器.rar)


计算器.rar

82.77 KB, 下载次数: 157, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 10吾爱币 +1 热心值 +10 收起 理由
海天一色001 + 1 + 1 谢谢@Thanks!
wmf09081020 + 1 谢谢@Thanks!
幻影游侠 + 1 我很赞同!
35432562 + 1 已答复!
唯唯 + 1 谢谢@Thanks!
贱的有气质 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
淡然出尘 + 1 高手..
bestow + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.
160区天堂使者 + 1 写的不是很清楚,我是菜鸟级别只能慢慢看~
Amo_晴天 + 1 收人以鱼不如收人以渔

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 银太 发表于 2015-8-22 10:44
q40989795 发表于 2015-6-27 16:20
不要乱下结论.
MessageBox 不管A或W  "Unicode" 编码如果显示乱码就使用"ANSI"编码

我记得不知道在哪里见过一句    用vc使用MessageBox 的话 如果是英文就调用 MessageBoxA  如果是中文就自动调用MessageBoxW 我再去查查看
 楼主| 银太 发表于 2015-8-22 10:55
q40989795 发表于 2015-6-27 16:20
不要乱下结论.
MessageBox 不管A或W  "Unicode" 编码如果显示乱码就使用"ANSI"编码

嗯  多谢指教了   自己亲自试了  MessageBoxA 可以弹出中文
 楼主| 银太 发表于 2013-10-12 02:35
qin_xs 发表于 2013-10-12 02:39
这尼玛什么节奏  感情是奔着出教程来的

支持~
qq80107525 发表于 2013-10-12 02:54
板凳?某子玩意、?下载看看先?
CarroAro 发表于 2013-10-12 03:46
挺好玩的
這樣子可以加入提示
就算是非原創軟件也能提醒那些小白該怎麼操作了
L。a 发表于 2013-10-12 07:53
我的为什么不能显示成中文或者是什么的,只要输入就是跟乱码一样。
wkxq 发表于 2013-10-12 08:27
可以加入提示
mwy1024 发表于 2013-10-12 08:31
嘛程序写的都可以么。
hxw555 发表于 2013-10-12 08:48
看样子也是个人才啊
linglong2013 发表于 2013-10-12 08:59
牛人,膜拜
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 18:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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