小人 发表于 2017-5-22 09:06

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

我就想要知道 生成器的 源码 学习下

打不死的小强强 发表于 2017-5-23 08:29

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

原有exe程序替换字节集再写出

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, 分割后的文本 )
    超级列表框1.置标题 (k, 1, 分割后的文本 )
.计次循环尾 ()

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

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


小人 发表于 2017-5-24 08:03

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

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

就是类似补丁生成工具的那种能下蛋的那种

Harlan 发表于 2017-5-24 09:32

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

其实那个补丁制作工具的原理很简单
第一步打开进程 设置标志为挂起打开
第二修改内存
第三部恢复进程标志位
然后软件就逆向成功了。至于那个生成的exe可以说其实只是在他程序里的一个shellcode他生成的那个exe都是一样的 只是shellcode不一样而已 你在界面上填写的RVA和补丁 都是修改他的shellcode而已
如果需要源码我过两天可以在论坛发布一个 只不过得告诉你 很多补丁制作工具都不一定是易语言写的 很多都是C语言写的

小人 发表于 2017-5-24 09:38

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


谢谢啊, 我就想知道源码是怎么写的   至于 c 语言还是什么都没事我看得懂 ,
不是易语言更好(易语言模块太多,很多都看不出是怎么实现的)
到时候 @我一下谢谢

Harlan 发表于 2017-5-24 09:43

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

可以的哦
这凑够10个字还不容易呢

往子 发表于 2017-5-24 13:49

小人 发表于 2017-5-29 18:00

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

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

谢谢
我要是 下蛋而不是修改内存{:5_116:}
页: 1 [2]
查看完整版本: 补丁生成器 原理是什么