= 47、关於 VB 程式之破解 ==================================================

>    hi..你好...getdigitem这个函式的能公能是作啥用的呢??

         破解注册码不外找到下列部份:

         get username -> name$
         get reg_code -> reg_code
         name_code := translation_func(name$)
         if (reg_code == name_code) then register_success()

         当然有其他各种变化

         这段通常是按下 "确定" 之後执行
         故可拦截按下之後所产生的 message 开始 trace, 这是一种方法

         另外 就是找出哪里对 username 字串做 READ/WRITE
         SDK 通常是用 GetDlgItem, GetDlgItemText, GetDlgItemInt 等函式
         VB 则很简单的直接用 form.TEXT1 运算
         而从 DialogBox 拷给 .BAS 应该就是 VBRUN 的工作了
         所以 trace 程式就看到不断地 rep movsw ....
         ( 转换部份就各家不同了, 像 RAR for win 该段就似乎是用 assembly 写的
           因为和 RAR for dos 几乎完全一样 )

         现在各 cracker/hacker 版很少看到讨论技术层面的 post,
         多是问 哪里有注册机, 某 game 如何破解等 ....
         抛砖引玉 不过是希望大家多提供心得 使新手不必再浪费时间试误

         现在工具程式已经很多, 多年前还得自己写 长驻debug 来使用
         至於 gametool, gamewizard 等 对破解其实实用性不大
         ( advance mode 的原理就较困难了, 也不见有人讨论 )
           ^ 指非数字性的分数, 如 bar 图的生命力等
         从 apple 时磁片保护到现在, 硬体 和 软体(OS) 一直在改变此间生态
         期待新一代有更多新的高手出现, 尽管这领域是相当另类的
--
[Origin: ◎椰林风情◎]  [From: ccsun8.cc.ntu.edu.tw]  [Login: 22]  [Post: 22]