吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5281|回复: 8
收起左侧

[原创] 【翻译】R4ndom破解教程全文翻译(For新手):第二十章(上)

  [复制链接]
sighout 发表于 2016-10-29 14:34
【翻译】R4ndom破解教程全文翻译(For新手):第二十章(上)
翻译都是我理解的方式进行描述,可能和原文不一致。
本教程中文版只在吾爱破解论坛 首发。
转载请注明来自吾爱破解论坛@52pojie.cn
正文开始
本章主要讲解VB编写的程序要怎么破解,因为这是一个大工程,所以我分为两个章节进行说明。
我们来看下我所提供的两个VB程序,被教程中的所有文件都会提供下载。
介绍VB编程语言与其他编程语言的区别,这个大家自行百度。
主要说明VB语言可以转换为p_code,这个语言可以跨平台移植,在MacLinux上都可以正常调用(如果是VB写的Dll)。
教程开始:
当你第一次使用OD打开一个VB编写的程序时,你会马上看到VB调用(MSVBVM50DLLCall,然后停在这里等待事件响应,因此这样就会让逆向程序员感觉有所不同。第一件事是你会发现call的栈中信息很少;因为多数程序的运行时间都是放在DLL中,而我们不关心DLL,只关心程序的callback、方法、时间。
1.png
另一个不同是字串表是查不到有用的东西的,因为多数的消息窗口和其他windows控件都是放在资源文件中,OD不会显示出来,不像逆向C\C++程序时可用查找字串参考。
2.png
另外一个比较麻烦的地方是,VB调用RegisterWindowExMessageBox是在自己的DLL中调用,我们不能下API断点。
3.png
通过点击这些方法,能看到VB和我们之前遇到的程序不一样的地方
4.png
你可看到,这里没有有用的API,没有有用的字串。
在看代码前,我们把用p-code编译CrackmeVB1.exe加载到OD,然后把代码窗口拉到最上面,看看VB程序的架构。我们可以看到DLL的很多功能
5.png
这就是运行领空中所有用到的API call了。
代码窗口往下拉一点点,我们可以看到跳转表。这和多数windows程序的一样。
6.png
然后我们往下拉,来到VB程序的资源信息中,这里有包含按键、回调。一个比较值得注意的地方是,这里是直接使用回调名称进行回调的,比如程序上有个MyCallBackButton,在代码中可以直接看到这个名字。这样就可以在代码中找到callback的地方。
7.png
继续往下拉,就能发现callback的处理代码了。这里使用了常规的callback,和你看到的一样,这里没有说明是什么的callback,我们可以通过改变映射文件进行调用。
8.png
最后,我们来到导入表或者IAT。我们能得到更多有用的信息。
9.png
当然上面的信息并不能完成这次的破解。我们需要使用其他工具
VB Decompiler Lite
这个软件有两个版本,一个是Lite,一个是ProLite版本是免费的,所以我们有附带该软件。VB Decompiler可以把p-code编译的VB程序进行反编译,反编译为VB语言。这样我们就可以看到VB程序的资源文件。好,现在打开VB Decompiler程序。
10.png
打开 CrackmeVB1.exe程序,然后点击Decompile按钮
11.png
然后可以看到许多信息了,注意左边的Forms文件夹,这里有两个,所有的资源文件都在这里面,我们一个一个看,一个是主窗口,一个是关于窗口。
12.png
你启动程序的时候已经发现这里点击的About按钮后出现的是其他信息,而且about窗口上的OK按钮是不可点击的。如果你跟着我的教程走,你就会知道怎么来进行破解了。
双击Form2后,我们可以看到资源信息了
13.png
这里我们可以看到一个按钮的字串是OK,另外一个信息的是这里的callback被叫做Command1
双击Form1,我们来到主窗口
14.png
现在我们在破解前知道了许多信息。一个重要的按钮叫 Check!,他的callbackCommand2,接着往下看,你可以看到Code中有对应的callback,而且知道偏移地址(Command2_Click_402FD0),如果你双击后就可以看到VB代码
15.png
现在我们知道Check按钮的偏移地址了,然后使用OD打开程序,来到402FD0
16.png
如果你在这里设了断点,运行程序,输入用户名和序列号,点击Check后就会停在这里了,后面的破解就很简单了。不再进行详细教程。
VB Decompiler Pro
我想告诉你们使用p-code进行查找callback,这样就必须使用VB Decompiler Pro,当然这个不是免费软件,所以不附带(译者注:我在52Pojie中找到,并附上),使用VB Decompiler Pro
打开CrackmeVB1,然后反编译。
17.png
这里我们就能看到p-code方法和callback了,所有地址都显示了要做什么东西。
现在进行补丁
使用OD打开程序并来到402FD0
18.png
设置断点,然后跑起来,来到4030AA处,背景颜色变了,这是从p-code中知道的。
19.png
4030E3处,弹窗坏消息。
20.png
我们看这里的代码可以发现有比较跳转的代码
21.png
把断点设在4030E1处,重启程序,点击Check后,OD断下来,改变0标志位。这里不会跳出坏消息。这样来看就是4030C0这个Call中进行了判断和处理坏消息。我们把断点设在4030C0处,重启程序,然后一步一步调试。
22.png
我们慢慢看,就能看到Call VB DLL的方法,下拉代码窗口可以看到4033644
23.png
vbaVarTstEq看上去像strcmp。然后前面传来2个参数。然后在40364F处还有一个call,点进去看看
24.png
现在我们必须要跳转到403644处。这样就能得到好消息。所以我们修改40344FJE跳转
25.png
这就是我们希望代码走到的地方
26.png
现在把断点设到40344F,跑程序,修改0标志位,强制跳转到40361E
27.png
然后来到40364D处后,我们得到了好消息,这就是破解这个程序的方法
28.png
有兴趣的可以去找到VB 调用API的部分与C/C++API对比,其实很容易找到相同的东西。
附件其他VB程序请自己练习,这里就不在进行讲解了

附上使用到的软件和破解程序
Readme.txt (48 Bytes, 下载次数: 16)

译者注:
由于前段时间忙工作的的事情,和老家房子拆迁的事情,所以没进行翻译。

后续章节会持续进行翻译并更新上来的,只是要时间,目前工作内容比较繁重,周末有时间就进行翻译和整理。

觉得好的,请给点热心值,谢谢!

未完待续




点评

23章呢,没有呢。  发表于 2017-6-19 05:45

免费评分

参与人数 2热心值 +2 收起 理由
Hmily + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
xiawan + 1 鼓励转贴优秀软件安全工具和文档!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cxj98 发表于 2016-10-29 15:46
呀哈,不错不错,收录进软件加解密合集教程。
kmwell 发表于 2016-10-29 16:20
shj2k 发表于 2016-10-29 16:26
DegerYang 发表于 2016-10-29 23:43
总算看到点正常帖子了!   现在52都不像技术论坛了!!!   样是下载站了
ShadowY 发表于 2016-10-30 09:07
学习了,谢谢楼主
GG0 发表于 2016-11-13 00:09
学习,学习
老万 发表于 2018-7-3 15:20
感谢了,楼主辛苦了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 02:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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