吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 4116|回复: 84

[原创逆向图文] 完美完善万能补丁器编程---以后只要修改配置文件即可逆向软件

  [复制链接]
zyyujq 发表于 2022-2-5 16:07 | 显示全部楼层 |阅读模式

本帖最后由 yujunqiang 于 2022-2-5 22:14 编辑

运行环境:WIN11
涉及工具:VS2017编程之VB.NET
教程类型:补丁制作,编程算法分析等
是否讲解思路和原理:

以下为程序界面图形:
fakename.png

接为上一篇续:https://www.52hb.com/thread-54330-1-1.html
上一篇代码逻辑正常,但运行时间很长,导致程序假死(你的应用进入了中断状态,但当前未执行任何受选定调试引擎支持的代码)
主要是对磁盘文件流的字节查询操作思路不正确,尽管程序代码逻辑正确,但访问磁盘时间太长,导致程序中断!

程序目的:

程序启动后,默认加载config.prg
窗体老虎上,
通过鼠标右键,可以选择更改配置文件config.prg,为各种文件进行逆向补丁
通过鼠标左键,即可选择目标文件,根据配置文件的特征码修改原文件,达到修改原文件的补丁逆向功能!

有了此编译程序!!!只要发布或下载,获得相应程序的补丁配置文件 config.prg, 即可对相应程序进行补丁逆向!!!

万用特征码补丁器配置文件,可以设置任何目标文件,第一行为可执行文件文件名,
第二行为可执行文件版本,
以下其它行,每二行十六进制码为对应的原始码补丁码原始码补丁码为绝对对应关系。

必须保证特征码的唯一性!!才能保证程序修改正确!!特征码十六进制码空格必须有且只能一个!!

例如config.prg文件内容如下:

BarTend
R1 V11.2.160.168
8B D8 48 85 C0 75 08 8D 43 FF
31 C0 90 90 90 90 90 90 90 90
80 7F 60 00 74 10 45 33 C0 48 8B 57 58 48 8B 4D 98 E8 4F 1C 4F
80 7F 60 00 EB 10 45 33 C0 48 8B 57 58 48 8B 4D 98 E8 4F 1C 4F
04 00 00 85 C0 74 07 BB 01 00 00 00
04 00 00 85 C0 74 00 BB 01 00 00 00
0F B6 C0 85 C0 74 56
0F B6 C0 85 C0 74 00
F3 FF FF 83 F8 FF 75
F3 FF FF 83 F8 FF EB
48 01 00 00 C1 92 35 7C
00 00 10 00 C1 92 35 7C

VB.net代码如下:
以下为程序代码内容:

Imports System.IO
Imports System.Text

Public Class Form1
    Dim TargetFileName As String '目标文件名
    Dim TargetFilePathName As String '目标完整文件名
    Dim OpenFileDialog1 As New OpenFileDialog '声明打开对话框
    Dim SourceHex() As String '原始特征码
    Dim PatchHex() As String '补丁特征码

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim ConfigFile = Application.StartupPath & "\config.prg" '目标特征码配置文件
        OpenConfigFile(ConfigFile)
    End Sub
   Private Sub Form1_MouseClick(sender As Object, e As MouseEventArgs) Handles Me.MouseClick
   
        If e.Button = MouseButtons.Left Then           '鼠标左键对目标文件进行补丁
            With OpenFileDialog1 '定义打开对话框属性
                    .Filter = "可执行文件(*.exe)|*.exe|库文件(*.dll)|*.dll|所有文件(*.*)|*.*"
                    .FilterIndex = 1
                    .Title = "打开目标文件"
                    .FileName = TargetFileName
                    .InitialDirectory = My.Computer.FileSystem.CurrentDirectory '首选当前目录
             End With

             If OpenFileDialog1.ShowDialog = DialogResult.OK Then
                TargetFilePathName = OpenFileDialog1.FileName '完整目标文件名
                Dim Pos As Integer = InStrRev(TargetFilePathName, ".") - 1
                Dim BakFilePathName As String = Mid(TargetFilePathName, 1, Pos) & "-Bak" & Mid(TargetFilePathName, Pos + 1) '完整备份文件名

                Dim FSData() As Byte = File.ReadAllBytes(TargetFilePathName) '目标文件读入字节数组

                Rename(TargetFilePathName, BakFilePathName) '目标文件改名备份

                Dim PatchNum As Integer = SourceHex.Length - 1 '补丁个数
                Dim SourceByte() As Byte '原始特征码字节数组
                Dim PatchByte() As Byte '补丁特征码字节数组

                For i As Integer = 1 To PatchNum
                     Dim HexStr() As String = Split(SourceHex(i), " ") '将十六进制特征码按空格拆分为字符串数组
                     Dim HexNum As Integer = HexStr.Length - 1 '字符串数组个数

                     ReDim Preserve SourceByte(HexNum)
                     ReDim Preserve PatchByte(HexNum)

                    For j As Integer = 0 To HexNum
                         SourceByte(j) = CByte("&H" & HexStr(j)) '原始特征码转换为字节数组
                    Next

                    HexStr = Split(PatchHex(i), " ") '将补丁的十六进制特征码按空格拆分为字符串数组
                    For k As Integer = 0 To HexNum
                         PatchByte(k) = CByte("&H" & HexStr(k)) '补丁特征码转换为字节数组
                    Next

                    Dim Index As Integer = IndexOf(FSData, SourceByte) '检索原始特征码在程序中的索引位置

                    If Index <> -1 Then '特征码匹配
                        Dim P As Integer = 0
                        Dim Indexs As Integer = Index + PatchByte.Length - 1
                        For m As Integer = Index To Indexs
                             FSData(m) = PatchByte(P) '替换特征码
                             P += 1
                       Next
                   End If
                Next

                File.WriteAllBytes(TargetFilePathName, FSData) '将完成特征码替换的字节数据,写到文件!
                MessageBox.Show("完成程序补丁!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
           End If


      ElseIf e.Button = MouseButtons.Right Then
            '鼠标右键打开或更改配置文件
             With OpenFileDialog1 '定义打开对话框属性
                 .Filter = "目标配置文件(*.prg)|*.prg"
                 .FilterIndex = 1
                 .Title = "更改目标配置文件"
                 .InitialDirectory = My.Computer.FileSystem.CurrentDirectory '首选当前目录
             End With
             If OpenFileDialog1.ShowDialog = DialogResult.OK Then
                 Dim TargetFilePathName = OpenFileDialog1.FileName
                 OpenConfigFile(TargetFilePathName)'打开选择目标特征码配置文件
              End If
        End If
  End Sub

    ''' <summary>打开或更改配置文件</summary>
    ''' <param name="ConfigFilePathName">配置文件含完整目录全称</param>
    Private Sub OpenConfigFile(ByVal ConfigFilePathName As String)
        Dim TargetFile As New StreamReader(ConfigFilePathName, Encoding.UTF8)
        Dim i As Integer = 0
        SourceHex = Nothing
        PatchHex = Nothing
        Do While TargetFile.Peek() > 0
            ReDim Preserve SourceHex(i)
            ReDim Preserve PatchHex(i)
            SourceHex(i) = TargetFile.ReadLine '读行
            PatchHex(i) = TargetFile.ReadLine
            i += 1
        Loop
        TargetFile.Dispose() '注销文件流
        TargetFileName = SourceHex(0) '目标文件名
        Dim TargetFileVer As String = PatchHex(0) '目标版本
        Me.Text = "万用特征码补丁器 [" + TargetFileName + " " + TargetFileVer + "]"
    End Sub

End Class

程序已经非常可靠实用,补丁运行速度快!

编译程序与源代码上传(含config.prg):
Release.rar (85.26 KB, 下载次数: 42)

程序更新:
https://blog.csdn.net/zyyujq/article/details/122791291


评分

参与人数 31威望 +1 HB +43 THX +17 收起 理由
花盗睡鼠 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
Jawon + 1
极速菜 + 1
一路走来不容易 + 1
消逝的过去 + 1
459121520 + 1
WolfKing + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
爱汇编爱汇编 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
冷亦飞 + 1
飞刀梦想 + 1
l278785481 + 1
liugu0hai + 1 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
yjczawyl + 1 + 1
龙之虎扑优酷 + 1 + 1
慕枫二二 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
AllureLove + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
ldljlzw + 1
我是好人 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
thunderiser + 1
徐先森 + 1
xmwd123 + 1
shaoyewudao + 1
6378895 + 2 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
jflmao + 1
nypht1228 + 1
brswbx201610 + 1
zwc123xyz + 1 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
king51999 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
Shark恒 + 1 + 20 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
香氛38 发表于 2022-2-5 16:07 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
bLIRZrj 发表于 2022-2-5 16:08 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
txMC4258 发表于 2022-2-5 16:10 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zvQeu064 发表于 2022-2-5 16:14 | 显示全部楼层

楼主分享不易,顶帖是必须的~
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
tiEo943 发表于 2022-2-5 16:15 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| zyyujq 发表于 2022-2-5 16:17 | 显示全部楼层

必须保证特征码的唯一性!!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zwVqG0972 发表于 2022-2-5 16:18 | 显示全部楼层

每天都能学到新知识,赞!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
yOdGemW 发表于 2022-2-5 16:26 | 显示全部楼层

感谢楼主分享,我瞧瞧
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
朋友614 发表于 2022-2-5 16:30 | 显示全部楼层

好家伙,我直接好家伙!!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

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

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


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

Powered by Discuz!

吾爱汇编 www.52hb.com

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