怎么才能破解我老公微信聊天记录 谁知道怎么导

跟其它语言相比,VB总是被人“鄙视”,其实没有好与不好的语言,正如某程序员说的:没有最好的语言,只有最好的程序员。VB也有它自己的特点,简单、方便、可视化强、利于快速开发,6M的迷你版更是让人在不释手。而且容易入门,也是通往其它语言最好的一个奠基。可惜关于VB方面的保护技术的文章很少,软件加密技术里面有涉及VB的保护内容,但是源码太少了,大部分是C和MASM

跟其它语言相比,VB总是被人“鄙视”,其实没有好与不好的语言,正如某程序员说的:没有最好的语言,只有最好的程序员。VB也有它自己的特点,简单、方便、可视化强、利于快速开发,6M的迷你版更是让人在不释手。而且容易入门,也是通往其它语言最好的一个奠基。可惜关于VB方面的保护技术的文章很少,软件加密技术里面有涉及VB的保护内容,但是源码太少了,大部分是C和MASM源码,这里我们也粗略的讲讲VB的一些保护技术,如果你还有更好的方法希望在下面补充。 一、检测父进程反RING3调试器,我们知道WIN32系统一般软件的父进程都是EXPLORE,而OD等RING3调试器对软件进行调试时都是将它们的线程设为它的子线程,我们只要让程序检查父进程是否为EXPLORE就行,看附件里的Anti-Debug,如果发现父进程不是EXPLORE.EXE就自动退出,源码如下: ’相关的API自己查查 hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0&) ’建立进程快照 If hSnapShot Then Process.dwSize = 1060 If (Process32First(hSnapShot, Process)) Then ’遍历第一个进程,获得PROCESSENTRY32结构 Do i = InStr(1, Process.szExeFile, Chr(0)) ’获得映像名称 mName = LCase(Left(Process.szExeFile, i - 1)) ’并转换成小写 If mName = "explorer.exe" Then ’是不是explorer.exe explorer = Process.th32ProcessID ’获得进程ID ElseIf Process.th32ProcessID = GetCurrentProcessId() Then ’是不是自己 pid = Process.th32ParentProcessID ’获得自己父进程ID Else flag = False End If Loop Until (Process32Next(hSnapShot, Process) < 1) ’遍历所有进程直到返回值为False End If l1 = CloseHandle(hSnapShot) End If If pid <> explorer Then TerminateProcess hprocess, 0 Else MsgBox "ok" On Error Resume Next End If End Sub 当然这个方法也不是万能的,在Process32First下断,更改跳转轻易躲过。 二、反SMARTCHECK加载,SMARTCHECK是调试VB的利器,有必要对其进行防范。小楼前辈在软件加密技术内幕中提到两种检测方法: 利用VB的AppActivate函数激活SMARTCHECK窗口,然后发送ALT+F4进行关闭该窗口和利用FindWindow发现SMARTCHECK窗口直接将其关闭,其代码基本上是这样: winHwnd = FindWindow(vbNullString, "Numega SmartCheck") If winHwnd <> 0 Then AppActivate "Numega SmartCheck" sendkey "%{f4}", True sendkey "%y", True 其实,我觉得直接检测进程SMARTCHK.EXE是否存在也可以,方法跟上面类似,你还可以检测其它比如W32DASM等进程,附件中的Anti-Load就是实例,发现SMARTCHK调用,自动退出: ….. If InStr(LCase(Process.szExeFile), "smartchk.exe") > 0 Then smart = Process.th32ProcessID TerminateProcess hprocess, 0 Unload Me Exit Do End If ……. 三、检测SOFTICE,附件里的Anti-ice就是Aming前辈的代码,在内存中直接检测SOFTICE。 四、利用IsDebuggerPresent检测调试器,这个对于OD来说已经一点用都没有了。具体看附件中的IsDebuggerPresent。 Private Declare Function IsDebuggerPresent Lib "kernel32" () As Long Private Sub Command1_Click() If IsDebuggerPresent Then End Else MsgBox "没有被调试" End If End Sub 五、加密字符串。 比如Text1.text=”恭喜”,我们可以这样写:Text1.text=Chr(-18009) & Chr(-12366) & Chr(33),另外一种就是写算法将字符串进行加密,实例Encodestring里你将找不到字符串信息,找到的是乱码。 六、实现软件代码校检防止被修改,比如用CRC或者MD5进行自身代码完整性检测,实现方法: 先写一个用于增加CRC特征码的软件,假设定义为结尾部分: Const CRC_HEAD

  • 发表于 2021-02-24 09:35
  • 阅读 ( 333 )
  • 分类:互联网

0 条评论

请先 登录 后评论
黑出5
黑出5

658 篇文章

你可能感兴趣的文章

相关问题