分析某录音软件(Windows)

本帖最后由 AmIzero 于 2019-8-6 22:04 编辑

感谢 #梦游枪手 的提示


  • 定位关键函数

某windows录音软件(以下简称此软件)采用注册码的方式进行注册。
由于在其目录下未观察到配置文件的存在,故猜测此软件使用注册表存储验证码。



使用IDA的xref功能找到关键函数sub_491290


  • 调试跟踪

使用调试器在sub_491290函数首设下断点,跟踪到 +13A处
EAX为注册码 ECX为注册码长度 + 1
使用调试器跟踪CheckSerial函数
函数首先从注册码中剔除 '-',并分成三个部分(loc_49045F)
M724D3QF4HB1E11T1ADR = ESI
M    4    Q    H    E    T
   7    D    F     B    1    1
     2    3     4     1    1    A

loc_49045F 拼接前两个部分
M4QHET7DFB11
loc_4905A0

E8 32AA0100               | call arw.58AFF0

返回了一个32位的字符串

2f83ed49516c1c9a32aee9cd04e2f327

初步怀疑是md5 用KANAL搜索一下



MD5("M4QHET7DFB11")="2f83ed49516c1c9a32aee9cd04e2f327"
目前为止23411a还没有被使用,通过观察发现23411a是在0~F范围内对应md5的输出
2f83ed49516c1c9a32aee9cd04e2f327
2   3    4    1   1   a
至于7DFB11实际上有意义,代表时间



7DF=2015 B=11 11=17 为日期

注册码最后两位经过实验与可为任意值

  • 综上注册码由三部分组成

第一部分 6位随机的字符串
第二部分 注册码生成日期(推测)
第三部分 作为一个checkSum 用于验证注册码的合法性
后面加上2位无关字符以组成20位的注册码

但是我并没有找到 在哪里对注册码进行的验证 也就是最后比较 23411a的过程

THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发
管埋员的头像-小北的自留地

昵称

取消
昵称