UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 2272|回复: 1
收起左侧

[原创] 零基础VB6无壳P-CODE逆向分析(VB Decompiler应用与避坑)

[复制链接]
Sebastian

主题

0

回帖

UD

新手上路

UID
25
积分
33
注册时间
2022-2-12
最后登录
1970-1-1
2023-9-16 03:18:42 | 显示全部楼层 |阅读模式

前言

最近从朋友那里拿到了一个加密狗授权的软件安装包,秉承着LCG的精神,开启了逆向之路,,经过查壳和综合分析确定是VB6编写的程序(这年头使用VB6开发商业程序的还真少见),作为一名C# Winform的业余程序员,靠着C#的知识勉强分析个大概.

授权简介

软件共分三种授权模式:

  1. 账号密码模式:免费,但功能有限制
  2. 硬盘绑定模式:收费,绑定电脑硬盘ID
  3. 加密狗模式:插着加密狗就可以使用
    经过对程序代码分析,软件是在编译前通过更改内部变量标志位实现不同授权模式,并且编译后只能识别对应的授权模式

所需工具

  1. VB Decompiler 11 (爱盘里面下载)
  2. 文本批量查找工具

源程序

aHR0cHM6Ly93d3cuMTIzcGFuLmNvbS9zL1FMaVJWdi00WHZoaA==

分析过程[由浅入深,正向推进]

分析软件结构

  1. 安装软件,并打开安装目录
    通过编译时间和经验筛选,除软件主程序外,只有
    FT_ET299_API.dll
    FD181.dll
    RCGrandDogW32.dll
    三种加密狗的库,具体用的是哪一种,后文会有分析过程

设置VB Decompiler参数

  1. 这个软件不能在WIN10系统上运行,解析不出来code段代码,我用的是WIN7的虚拟机.
  2. 打开VB Decompiler,按F11(或者菜单栏工具→选项),设置完成后保存,重启软件
    零基础VB6无壳P-CODE逆向分析(VB Decompiler应用与避坑) - Sebastian_UltraDebug

逆向分析1 验证窗口的来源(正向推进)

  1. 打开软件,弹出登录界面/验证界面(因为我获得了加密狗版的安装包,所以知道不同的软件界面,这个是后话)
  2. 记住这个登录界面,我们打开VB Decompiler,导入软件的主程序,并反编译.
  3. 在树形分支窗口中在forms里面找到刚才的界面(frmlogin)
  4. CTRL+S(菜单栏文件→保存反编译的项目),将反编译的内容保存在单独的文件夹里面.
  5. 使用文本批量查找工具,在刚刚保存的目录下查找"frmlogin"通过查找定位可找到frmmain.frm和frmzc.frm两个调用了这个登录界面.
  6. 通过具体跟进代码,发现在frmmain的Form_Load窗体加载事件中调用了这个窗体的显示
NewIfNullPr frmlogin 'Ignore this
frmlogin.Show var_C8, var_D8

通过上下文代码内容得知:

  var_98 = "软件启动检测"
  var_F6 = 1
  If (var_F6 = 1) Then
    var_88 = "NET"
  Else
    If (var_F6 = 2) Then
      var_88 = "HDD"
    Else
      If (var_F6 = 3) Then
        var_88 = "DOG"
      End If
    End If
  End If

通过对var_F6的赋值来决定模式,但是经过上下文跟进和实际测试这个只会影响软件各窗口标题内容
7.继续对上下文代码分析

 loc_66AB02: var_98 = "软件验证"
  loc_66AB0B: Call Proc_42_11_585008(var_B0)
   var_98 = "软件验证"
  Call Proc_42_11_585008(var_B0)
  MemVar_6AF114 = CStr(var_B0)
  var_B0 = "" 'Ignore this
    If &HFF Then         //这个值是那里来的,望VB的程序员帮忙解答一下,这个直接决定软件授权验证窗口的类型(授权模式)
    var_D8 = CVar(Me) 'Address
    PopAdLdVar 'Ignore this
    var_C8 = 1
    PopAdLdVar 'Ignore this
    NewIfNullPr frmlogin 'Ignore th
还有更多的精彩内容,作者设置为付费后可见
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

Alanna

主题

0

回帖

UD

新手上路

UID
38
积分
32
注册时间
2022-5-15
最后登录
1970-1-1
2024-3-4 19:10:23 | 显示全部楼层
vb程序破解分析 非常详细,学习了
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-20 15:35 , Processed in 0.043132 second(s), 12 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

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