分类 工具 下的文章

如果图片看不见可以先移步看雪论坛的帖子 https://bbs.pediy.com/thread-265907.htm

0x00 前言

在官网下载UltraISO 软碟通的安装包,一顿操作安装好之后,打开程序之后弹出尚未注册的窗口,输入注册码提示需要重启软件,猜测在打开软件之后会通过某些操作比较输入的注册码。

image-20210205112643381

0x01 寻找注册码验证方式

既然猜测是在程序启动的时候有一些操作验证注册码,不妨使用火绒剑对主程序(UltraISO.exe)进行监控看看它在启动的时候做了什么事情。

通过简单的观察发现了一处可疑注册表读取操作,大胆猜测我们之前输入的注册码就是通过注册表来保存,并且在程序重启的时候进行验证。 image-20210205113707569

用x32dbg和IDA打开UltraISO.exe进行分析,并在x32dbg中对RegOpenKeyA下断点,通过栈回溯结合IDA的反编译结果定位到了读取注册表中注册码的函数。 image-20210205114824635 image-20210205114951562

CTRL+F9跑出这个函数看看后面哪里用到了我们的注册码,在0x0040190C函数里用到了我们输入的Name和Key,这里应该就是验证算法函数了,结合红绡枫叶前辈的帖子UltraISO注册算法&keygen分析虽然地址不同不过汇编代码都是大致相同的,本文的核心还是在破解部分对于验证算法的分析我就不班门弄斧了,可以去看红绡枫叶前辈的分析帖子。

接着F8往下走,遇到一个比较跳转的部分,先让跳转生效看一下效果。 image-20210205115820215

打开依旧还是未注册版本,我们返回去给0x7C8F84下断点看看后面还有哪些地方用到了,接着跳过未注册窗口运行起来,又断在了一个比较跳转地方,在IDA里面的这一条语句也包含了下一个的跳转。 image-20210205120822604 image-20210205120844600

因为我们现在肯定是错误的注册码,所以先以相反的方向执行跳转然后在运行起来看是否注册成功,运气很好这三个跳转修改掉之后就注册成功了。

image-20210205121110411

最后还有一个小坑,上面修改完文件保存会闪退,x32dbg下CreateFileA断点然后栈回溯在结合IDA发现在文件另存为和保存的时候会再次判断注册码。 image-20210205200226375 image-20210205200250741

0x02 总结

总共就是要Patch 4个地方,生成的新应用程序覆盖掉之前的UltraISO.exe就可以了

0x004030A8  74 -> EB
0x00423C61  75 15 -> 90 90 
0x00423C76  74 -> EB
0x0044BBD0   74 -> EB

本程序的验证算法部分还是有难度的,不过结合火绒剑等分析工具破解对于新手试手还是比较友好的,不知道为什么没有遇到网上以前的分析文章遇到的ASPack壳

010 Editor v11.0.1逆向破解

0x00 软件概况

使用工具:OD & IDA 7.2
破解平台:win7 x64

软件官网:https://www.sweetscape.com/010editor/
软件作用:010 Editor 是一款专业的文本和十六进制编辑器,其旨在快速轻松地编辑计算机上任何文件的内容。该软件可以编辑文本文件,包括 Unicode 文件、批处理文件、C/C++、XML 等,而在编辑二进制文件中,010 Editor 有很大的优势。

我下载的是32位安装版的程序,64位和便携版的破解方式应该是大同小异的

0x01 逆向分析

​ 安装完程序后简单查看了一下程序使用的DLL发现一大堆QT的DLL,所以传统的使用GetWindowTextW等Win32API对关键函数定位就不能起作用了。

1. 第一步本地验证

在随意输入用户名和注册码之后会出现以“Invalid name or password.”开头的弹窗,就可以通过IDA的交叉引用定位到调用该字符串的函数。image-20201112213723119.png (1139×467)

通过简单的上下翻阅可以发现关键if语句
image-20201112213834892

通过 v14 向上定位到复制的地址
image-20201112214124263

跟进KeyFunc函数,由上方关键if语句知道,如果要进入正确的语句块则 v14 = 0xDB 即 KeyFunc的返回值为0xDB。

使用OD动态调试可知,如果输入错误ebx会等于 0x177
image-20201112215124806

如果我们想要绕过验证则直接在IDA内把0x177的返回值修改为0xDB

image-20201112215508286

然后在Edit -> Patch program -> Apply patches to input file 保存文件
image-20201112215742352

至此我们就通过了第一步的本地验证,重新打开注册界面随意输入用户名和注册码都会通过验证

2. 网络验证

我们在愉快使用一段时间后,可能会重新出现注册码错误的或者提示连接服务器错误的提示,这就得突破网络验证机制了

在此前的关键if语句所在的函数中我们会发现以“Could not contact the webserver.”开头的字符串,往上阅读代码就可以发现网络验证错误打印跳转,结合OD可确定网络验证函数
image-20201112230114413

根据上下逻辑可知当网络验证函数返回正整数时即为通过网络验证

这里是直接把验证CALL给直接NOP掉了,就相当于PASS了网络验证了
image-20201112231543456

还要把此处的判断 nop掉,不然后续会弹窗,影响使用
image-20210422184010834
image-20210422184049912

0x02 总结

总的来说本程序的逻辑是比较清晰的,注册码算法部分本文未具体展开我们只展示了众多破解此程序的其中一种方法,如有错误,还望指正。

0x03 源程序安装包及破解程序

安装包:010EditorWin32
破解程序:010Editor

使用方法:下载俩个程序后,先运行安装程序待安装完成后把破解程序放到安装目录替换源程序

也可以直接使用绿色版(解压即可使用):绿色版

0x00 前言

因为我本机已经安装了Git,所以我就放在了虚拟机里再次演示,虚拟机的环境为Win7 x86,具体的安装步骤于Win10大体上是一至的。如还有不懂请善用好搜索引擎。

0x01 Git简介

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。简单的说就是在团队协作里管理代码的工具。

0x02 Git安装步骤

1.下载地址:下载点我,可能下载有点慢,这里提供蓝凑云链接,截至2020年5月最新版本为2.26.2

2.首先一路Next到这个界面,选择所需要安装的模块,不知道的可以全部选上。
1.jpg

3.这里是选择是否要添加开始菜单文件夹。
2.jpg

4.接下来是选择编辑器(这部关系到后期的体验建议选择比较好用的编辑器如VS Code),如选择默认的Vim编辑器后期学习成本比较大,万一选错可以看这篇文章后面在修改。
3.jpg

5.然后就一路默认,等待安装完成,桌面上会出现这个图标即安装成功
4.jpg

0x03 云端托管平台

1.GitHub
这个平台对于大家来说应该是比较熟悉了,有关的注册都比较详细这里就放一个,我就不仔细介绍了。唯一的缺点就是要一点英语功底,不过换个方式想还能提升英语水平一举两得。(逃
5.png

2.Coding
本平台不仅仅是代码托管平台,更是一个协作平台,支持多种协作搬砖方式,而且帮助文档比较详细,对于新手团队来说会比较好上手,有5个人免费额度,可以尝试,我们小组此次程序设计实践就是用此平台,相关注册的方式这里放个官方链接,比较详细了。