吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

12
返回列表 发新帖
楼主: 小人

补丁生成器 原理是什么

[复制链接]
 楼主| 小人 发表于 2017-5-22 09:06 | 显示全部楼层

镜中神无 发表于 2017-5-21 21:35
然而HK微笑给的就是补丁原理。生成器原理不过是多了个读取的功能。

我就想要知道 生成器的 源码 学习下
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
打不死的小强强 发表于 2017-5-23 08:29 | 显示全部楼层

小人 发表于 2017-5-22 09:06
我就想要知道 生成器的 源码 学习下

原有exe程序  替换字节集  再写出
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Hk微笑 发表于 2017-5-23 20:28 | 显示全部楼层

小人 发表于 2017-5-20 20:58
我不是要补丁的原理   我要的是  生成器的原理    比如  xh   樱花 补丁生成器

怎么不懂变通呢,既然知道补丁原理了 那么工具只是调用函数 写入内存地址啊,就和hook一样,或者注入器一样道理我这里给你看一下源码,希望你能看懂
.版本 2
.支持库 edroptarget
.支持库 iext
.支持库 spec
.支持库 eAPI

.程序集 窗口程序集1
.程序集变量 内存1, 类_内存

.子程序 __启动窗口_创建完毕

多炫皮肤 (#_黑客风格)
拖放对象1.注册拖放控件 (编辑框_程序路径.取窗口句柄 ())
拖放对象1.接收文件 = 真

.子程序 _拖放对象1_得到文件
.参数 接收到的文件路径, 文本型

编辑框_程序路径.内容 = 接收到的文件路径

.子程序 _时钟1_周期事件

.如果真 (编辑框_程序路径.内容 ≠ “”)
    程序名 = 分割文本 (编辑框_程序路径.内容, “\”, )
    .如果 (真 = 进程_是否存在 (程序名 [取数组成员数 (程序名)], 真))
        编辑框_运行状态.内容 = “-----已运行-----”
    .否则
        编辑框_运行状态.内容 = “-----未运行-----”
    .如果结束

.如果真结束


.子程序 _按钮_浏览文件_被单击

通用对话框1.初始目录 = 取运行目录 ()
通用对话框1.标题 = “选择目标文件”
通用对话框1.初始过滤器 = 0
通用对话框1.打开 ()
编辑框_程序路径.内容 = 通用对话框1.文件名


.子程序 _按钮_添加_被单击

.如果真 (编辑框_修改指令.内容 ≠ “” 且 编辑框_内存地址.内容 ≠ “”)
    表项索引 = 超级列表框1.插入表项 (, , , , , )
    编辑框_内存地址.内容 = 删全部空 (编辑框_内存地址.内容)
    编辑框_修改指令.内容 = 删全部空 (编辑框_修改指令.内容)
    超级列表框1.置标题 (表项索引, 0, 编辑框_内存地址.内容)
    超级列表框1.置标题 (表项索引, 1, 编辑框_修改指令.内容)
    编辑框_内存地址.内容 = “”
    编辑框_修改指令.内容 = “”
.如果真结束


.子程序 _超级列表框1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

编辑框_内存地址.内容 = 超级列表框1.取标题 (超级列表框1.现行选中项, 0)
编辑框_修改指令.内容 = 超级列表框1.取标题 (超级列表框1.现行选中项, 1)

.子程序 _按钮_修改_被单击

超级列表框1.置标题 (超级列表框1.现行选中项, 0, 编辑框_内存地址.内容)
超级列表框1.置标题 (超级列表框1.现行选中项, 1, 编辑框_修改指令.内容)


.子程序 _按钮_删除_被单击

超级列表框1.删除表项 (超级列表框1.现行选中项)


.子程序 _按钮_一键逆向_被单击

.如果真 (编辑框_程序路径.内容 ≠ “”)
    .如果真 (超级列表框1.取表项数 () ≠ 0)
        运行 (编辑框_程序路径.内容, 假, )
        超级延迟 (到数值 (编辑框_等待时间.内容))
        打补丁 ()
    .如果真结束

.如果真结束


.子程序 超级延迟
.参数 时间, 整数型
.局部变量 启动时间, 整数型
.局部变量 结束时间, 整数型

启动时间 = 取启动时间 ()
.判断循环首 (结束时间 - 启动时间 < 时间)
    延迟 (5)
    结束时间 = 取启动时间 ()
.判断循环尾 ()

.子程序 打补丁
.局部变量 系统进程, 进程信息, , "0"
.局部变量 计次, 整数型
.局部变量 被和谐的进程数组, , , "0"
.局部变量 计次1, 整数型
.局部变量 计次2, 整数型

程序名 = 分割文本 (编辑框_程序路径.内容, “\”, )
' 信息框 (程序名 [取数组成员数 (程序名)], 0, )
系统进程 = 取系统进程列表 ()

.计次循环首 (取数组成员数 (系统进程), 计次)

    .如果真 (系统进程 [计次].进程名称 = 程序名 [取数组成员数 (程序名)])
        加入成员 (被和谐的进程数组, 系统进程 [计次].进程标识符)
    .如果真结束

.计次循环尾 ()

.计次循环首 (取数组成员数 (被和谐的进程数组), 计次1)
    .计次循环首 (超级列表框1.取表项数 (), 计次2)

        内存1.写字节集 (被和谐的进程数组 [计次1], 进制_十六到十 (超级列表框1.取标题 (计次2 - 1, 0)), 字节集_还原 (超级列表框1.取标题 (计次2 - 1, 1)))

    .计次循环尾 ()
.计次循环尾 ()
编辑框_逆向状态.内容 = “-----已PJ-----”

.子程序 _按钮_仅逆向_被单击

.如果真 (编辑框_程序路径.内容 ≠ “”)
    .如果真 (超级列表框1.取表项数 () ≠ 0)
        打补丁 ()
    .如果真结束

.如果真结束


.子程序 _按钮_保存配置项_被单击
.局部变量 临时文本, 文本型
.局部变量 i, 整数型

.如果 (超级列表框1.取表项数 () ≠ 0)
    通用对话框2.初始目录 = 取运行目录 ()
    通用对话框2.标题 = “选择目标文件”
    ' 通用对话框2.过滤器 = “文件(*.ini)|*.ini”
    通用对话框2.文件名 = “配置项”
    通用对话框2.打开 ()
    .计次循环首 (超级列表框1.取表项数 (), i)

        临时文本 = 临时文本 + 超级列表框1.取标题 (i - 1, 0) + “|” + 超级列表框1.取标题 (i - 1, 1) + “|”

    .计次循环尾 ()

    .如果真 (-1 ≠ 寻找文本 (通用对话框2.文件名, “ini”, , 假))
        写到文件 (通用对话框2.文件名, 到字节集 (临时文本))
    .如果真结束

.否则
    信息框 (“我擦  忘记写东西了”, 0, “汗!”)

.如果结束


.子程序 _按钮_读取配置项_被单击
.局部变量 得到的文本, 文本型
.局部变量 分割后的文本, 文本型, , "0"
.局部变量 j, 整数型
.局部变量 k, 整数型
.局部变量 计次, 整数型

超级列表框1.全部删除 ()
通用对话框3.初始目录 = 取运行目录 ()
通用对话框3.标题 = “选择目标文件”
通用对话框3.过滤器 = “文件(*.ini)|*.ini”
通用对话框3.打开 ()
得到的文本 = 到文本 (读入文件 (通用对话框3.文件名))
分割后的文本 = 分割文本 (得到的文本, “|”, )
.计次循环首 (取数组成员数 (分割后的文本) ÷ 2, 计次)
    j = 2 × 计次 - 1
    k = 超级列表框1.插入表项 (, , , , , )
    超级列表框1.置标题 (k, 0, 分割后的文本 [j])
    超级列表框1.置标题 (k, 1, 分割后的文本 [j + 1])
.计次循环尾 ()

.子程序 _时钟2_周期事件

.如果真 (编辑框_运行状态.内容 = “-----未运行-----”)
    编辑框_逆向状态.内容 = “-----未逆向-----”
.如果真结束


吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 小人 发表于 2017-5-24 08:03 | 显示全部楼层

Hk微笑 发表于 2017-5-23 20:28
怎么不懂变通呢,既然知道补丁原理了 那么工具只是调用函数 写入内存地址啊,就和hook一样,或者注入器一 ...

还是谢谢你   可能我表达不清楚吧   
我想问的是   exe的补丁是怎么生成的    而不是自己写一个补丁

就是类似补丁生成工具的那种  能下蛋的那种  
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Harlan 发表于 2017-5-24 09:32 | 显示全部楼层

本帖最后由 Harlan 于 2017-5-24 09:35 编辑

其实那个补丁制作工具的原理很简单
第一步打开进程 设置标志为挂起打开
第二修改内存
第三部恢复进程标志位
然后软件就逆向成功了。至于那个生成的exe可以说其实只是在他程序里的一个shellcode  他生成的那个exe都是一样的 只是shellcode不一样而已 你在界面上填写的RVA和补丁 都是修改他的shellcode而已
如果需要源码我过两天可以在论坛发布一个 只不过得告诉你 很多补丁制作工具都不一定是易语言写的 很多都是C语言写的
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 小人 发表于 2017-5-24 09:38 | 显示全部楼层

Harlan 发表于 2017-5-24 09:32
其实那个补丁制作工具的原理很简单
第一步打开进程 设置标志为挂起打开
第二修改内存

谢谢啊  , 我就想知道源码是怎么写的   至于 c 语言还是什么都没事  我看得懂 ,
不是易语言更好(易语言模块太多,很多都看不出是怎么实现的)
到时候 @我一下谢谢
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Harlan 发表于 2017-5-24 09:43 | 显示全部楼层

小人 发表于 2017-5-24 09:38
谢谢啊  , 我就想知道源码是怎么写的   至于 c 语言还是什么都没事  我看得懂 ,
不是易语言更好(易语 ...

可以的哦
这凑够10个字还不容易呢
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
往子 发表于 2017-5-24 13:49 | 显示全部楼层

提示: 作者被禁止或删除 内容自动屏蔽
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| 小人 发表于 2017-5-29 18:00 | 显示全部楼层

往子 发表于 2017-5-24 13:49
补丁生成器?  我的理解就好像。CE修改器  已知的内存数据 修改内存。

易语言写就很简单。  内存写整数 ...

谢谢
我要是 下蛋  而不是修改内存
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

11层
12层
13层
14层
15层
16层
17层
18层
19层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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