注册机就是批量生成相同功能的而内部配置不用程序文件的程序,这个程序的好处是不用在修改源代码重新编译的情况下产生新的文件,广泛应用与木马行业。 原理有很多,这里实现的是在文件结尾追加配置字符的方法。 程序下载,右键另存为rar文件:http://blog.csdn.net/images/blog_csdn_net/Qqwwee_Com/RAR_ExeProc.rar.gif 没有配置过的界面:
已经配置过的运行界面,背景是用notepad.exe打开文件可以看到文件最后的配置字符串: 主要源代码: Private Sub b_OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_OK.Click ''''检查配置 If Len(Me.tb_myConfig.Text) = 0 Then Me.l_res.Text = "请输入你要设置的字符!" Return End If ''''设置文件保存位置 Dim strUrl As String If ofd.ShowDialog = DialogResult.OK Then strUrl = ofd.FileName Else Return End If ''''复制本身到指定文件 IO.File.Copy(Application.ExecutablePath, strUrl, True) Dim ms As IO.FileStream Dim bw As IO.BinaryWriter Try '''' ''''打开文件 ms = New IO.FileStream(strUrl, IO.FileAccess.ReadWrite) bw = New IO.BinaryWriter(ms) ''''读取中文件配置的位置,以确定该文件是否被配置过 Dim ip As Integer = SeekPostion(Application.ExecutablePath) If ip = 0 Then ''''如果没有配置过,就定位到文件结尾 bw.Seek(0, IO.SeekOrigin.End) Else ''''已经配置过的话,就定位到配置位置 bw.Seek(ip, IO.SeekOrigin.Begin) End If ''''连续写2个 vbcrlf,这个就是是否被配置的标志 bw.Write(vbCrLf) bw.Write(vbCrLf) ''''这里写配置进去! bw.Write(System.Text.Encoding.Default.GetBytes(Me.tb_myConfig.Text)) bw.Flush() Catch ex As Exception Me.l_res.Text = "错误:" & ex.Message Return Finally ''''关闭文件 bw.Close() &nbs [1] [2] [3] 下一页 |