tingwei3 发表于 2020-3-7 09:49

记本菜鸟分析暴破一款小软件

前不久因工作需要找到一款软件(网上有3.xx的逆向版),觉得很好用,但是他报毒(可能是加壳关系吧),今天就试试来逆向一下最新的4.25版。


声明:本人建筑民工一枚,纯属业余爱好,文章中已隐去敏感信息,如仍对作者有冒犯,请版主删贴。


开始了:


1,软件是VB编写,无壳,运行弹注册界面,关注册界面可试用,有消息框提示功能受限。
                https://attach.52pojie.cn/forum/202003/07/091616ex8wk0w8v8608erv.pnghttps://attach.52pojie.cn/forum/202003/07/091619dk9it11hhz9jo9ok.png
   2,od载入运行,输入假码,弹“注册失败”消息框,我断网试试,是本地验证,暂停法试试。
   0044B235   .FF15 9C104000 call dword ptr ds:[<&MSVBVM60.#595>]   ;msvbvm60.rtcMsgBox
   0044B23B   .8D4D E4       lea ecx,dword ptr ss:; 返回用户代码后停在这里

         2.1,向上找跳过这里的跳转,第一次找到下图这个。
                                 https://attach.52pojie.cn/forum/202003/07/091622bzn92q27f0fh0o9o.png
         2.2,再找一有没有跳转可以跳过注册失败

                                 https://attach.52pojie.cn/forum/202003/07/091624gepxfxkzfe3xpjw3.png

         修改试试,显示注册成功。
                                 https://attach.52pojie.cn/forum/202003/07/091626rgboqbsssx4txtth.png https://attach.52pojie.cn/forum/202003/07/091629mgwp2t3wlsz6isqk.png

         测试功能受限,重启仍是未注册,重启验证!!!

         上图中je下面有个常量(这个位置什么时候赋值也值得跟踪)。

      2.3,此处我思维跳跃了一下,就重新加载了程序,未运行时在 处下内存访问断点然后运行。
         第一次断在729495BC    F3:AB         rep stos dword ptr es:
         系统领空先忽略了

         第二次断在00443A5F   .66:C705 28C04>mov word ptr ds:,0x0
         上面提到的je下一句是给常量赋值为0xffff,这里赋值为0,稍后可以试试看。

         第三次断在00443A6F   .0FBF0D 28C046>movsx ecx,word ptr ds:
         这里用到了常量的值

         第四次断在00443CA1   .0FBF15 28C046>movsx edx,word ptr ds:
         这里用到了常量的值

         接下来软件就跑起来了,弹注册界面,我们再试注册一次成功的看看,这个常量是否有用。无意间发现了我的假码在!!!!!
                                 https://attach.52pojie.cn/forum/202003/07/091631i4sldbtpb28utbt3.png
      2.4,试给赋值有没有用。
         重新加载了程序,未运行时在 处下内存访问断点然后运行。
         第二次断下后,单步执行一行,修改 处为0xffffffff,试试看。
                                  https://attach.52pojie.cn/forum/202003/07/092135obz70qf99v04i5xf.png
         测试受限功能,还是受限,还发现这处被修改为0xffff0000。


   3,从受限功能来看谁修改了处的值,按2.4方法修改好,测试受限功能。

         3.1还是用添加按钮测试,第二次增加字符时就弹消息框了,同样用暂停法试试。
                                 https://attach.52pojie.cn/forum/202003/07/091635gmttjhgjx6plbp3r.png
         这里找到跳转,edx值要为零才跳转,这里再向上看有没有什么可分析的代码。
         细看,edx值好像来自,而 值好像来自0043eda7这句的cx值,cx值又和dx值有关,而dx值又曾经用的值赋值。

         3.2因为用到,这里还要试试看,栈底在这么长一段代码执行过程中有没有变化,稳妥起见,我跑了一次试试看,
         测试后发现栈底确实没变(应该堆栈平衡了,学艺不精),自嘲一下。      3.3,剩下的不多啰嗦了。
         把第二次断下时的赋值修改0xffff;
         修改了4个修改值的方法,有参数注意怎么返回。
                                             call 0044CA20
                                             call 0044CC70

                                             call 0044C920
                                             call 0044C7A0
         按上面修改后,经我简单测试,已不弹注册界面并去除了功能限制。


最后,这部分存属记事,可无视。

    关于那个堆栈的赋值(类似),经我分析其实就是让cx的值为零,可按下图修改(有多处),未全测试,应该也可以去除功能限制。
                                 https://attach.52pojie.cn/forum/202003/07/091637pfzzjnlatre91fc1.png

萌萌的小短腿 发表于 2020-3-8 11:52

学习了,膜拜大佬

ebx 发表于 2020-3-9 11:49

学习了 ,感谢大佬的思路{:5_116:}

dragon-li 发表于 2020-3-31 00:14

厉害了,感谢分享

Scorpio 发表于 2020-4-9 10:18

还是没看清是啥软件,也玩玩

longge188 发表于 2020-9-1 16:44

吃水不忘打井人,给个评分懂感恩!

白云点缀的蓝 发表于 2021-11-19 16:54

谢谢分享~~~

muker 发表于 2021-12-8 04:58

学习学习,感谢楼主的无私分享

拿着雪糕 发表于 2022-2-2 15:56

感谢分享,学习一下

zvQeu064 发表于 2022-2-25 18:10

感谢楼主
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 记本菜鸟分析暴破一款小软件