本帖最后由 icer233 于 2024-12-8 21:59 编辑
修改版权之给程序加弹窗、网页
手动操作
讲师:Kido
添加函数
- 首先使用
StudPE 打开目标程序, 选择"函数", "USER32.dll"
- 看一下是否有
MessageBoxA 函数, 若没有, 则需要手动添加: 右键, "Add New Import"
- 点击"DLL选择"按钮, 选择
C:\WINDOWS\system32\user32.dll
- 再点击"选择函数"按钮
- 选择
MessageBoxA 函数, 点击"确定"
- 点击"添加到列表", 选中输入表列表中的这个函数, 点击"添加", 点击右下角"确定"
- 此时函数就添加好了
调用函数添加弹窗
- 重新用
StudPE 打开目标程序, 找到刚刚添加的函数, 复制其rva 值, 这里是001AA187
- 用OD载入程序,
Ctrl+G 输入001AA187 , 选择RVA , 点击"OK"
- 左下角出现提示, 复制地址
005AA187
- 再次用
StudPE 打开程序, 选择"区段", 右键, 选择"New Section"添加新的区段
-
区段名随意填写, 原始大和虚拟大小可以大一些, 例如1000, 选择"用空字节填充区段", 点击"增加"
经过一个弹窗提示, 点击右下角"确定"
- 用OD载入, 点击最上方的"m", 选择新添加的区段
-
找到了地址05AB000 (见上图第二个红框最左侧), 回到调试窗口, Ctrl+G 跳到这个地址
右键, 选择"此处为新EIP", 弹窗点击"是"
- 从
005AB00 开始依次输入4个push 0 , 第五个输入call [005AA187] , 其中方括号内容正是第三步中获得的地址, 出现注释, 记住005AB008 处代码cal1 dword ptr ds:[0x5AA187] 后面要用
- 依次步过, 堆栈窗口出现提示, 成功弹出窗口
修改弹窗内容
从上到下4个push 依次是
push Style(0)
push Title
push Text
push hOwner
- 首先修改标题, 将第二个
005AB002 处的push 的0x0 随便改为一个稍微下面一点的我们的新区段的地址, 例如005AB01A 并在左下角内存窗口跟到005AB01A
- 选中这一行, 右键"用二进制编辑", 输入你要的标题, 点击"确定"
-
同理修改005AB007 处, 这里修改的是弹窗显示的内容
-
将005AB00C 改为push 0
-
将005AB00E 处改为我们之前记住的调用MessageBoxA 函数的代码call dword ptr ds:[0x5AA187]
修改完后如下图所示, 黄框是我们修改好的代码, 蓝框是由于修改标题和文本的内容导致出现的代码, 所以之前要选择一个偏下的地址防止干扰
- 将下一行
005AB014 改为跳转到原来的程序入口点(OEP)
-
保存文件, 再次载入OD, 找到我们修改的第一行005AB000 , 右键, "此处为EIP"
-
运行程序, 成功弹窗, 并且不影响原来的程序
修改程序入口点
- 用
StudPE 打开我们修改后的程序, 点击"区段", 找到我们新加的区段, 找到第四列的001AB000
- 在"文件头"标签页将入口点改为
001AB000 (也可以点击右下"Rva<=>Raw", 选择"虚拟地址", 输入我们在OD中修改代码的地址, 即005AB000 , 找到上方的"相对虚拟地址", 也是1AB000 )点击右下角"保存到文件"
- 测试程序, 成功弹窗。至此, 修改结束
总结
- 添加
MessageBoxA 的导入表并获取VA
- 添加一个新的区段,并植入汇编代码(弹窗并跳回原来的EP)
- 修改EP到新的起始位置并保存
类似地, 你也可以用这个方法弹网页, 判断文件是否存在等
自动操作
想必大家已经学会了手动添加弹窗,但是每次都自己手动添加实在是太麻烦了,这里推荐三个程序一件添加
网络验证通杀器-你想辅助工具v8.0
优点:可以添加消息弹窗和网页弹窗
缺点:不能只加一种弹窗
无壳EXE加弹窗工具
优点:可以添加消息弹窗和网页弹窗,界面简洁
缺点:不能只加一种弹窗
一键给exe加弹窗皮肤
优点:可以单独加网页或者弹窗,可以设置弹窗标题
|