0x0 简述

Uninstall Tool是目前我所用过的最强的傻瓜化卸载工具了【专业手段除外】,软件本身很小巧,但是涉及卸载相关的功能却很全面,如下图介绍所示:

此工具有两种形态,一种是安装包版,一种是便携版也是我们常说的绿色版。本次破解以安装版为基础(PS:已验证便携版原理上与之一致)。

0x1 思路及方法

拿到软件,首先看下软件有无什么保护,结果发现仅仅有一个注册机制,并没有特别的保护。找到需要输入注册码的地方,试试看,发现当时并不能立马获取注册成功与否的结果,软件提示要重启验证

鉴于弹出就是个MessageBox,那么咱们先断这个MessageBox来回溯下,很容易就找到了第一个重要的函数:sub_14000c2e4.其实这个函数就是输入好密钥后确认按钮的响应函数。

顺着分析,先看下输入进去的用户名、密钥去哪儿了?很容易地,发现原来输入的用户名、密钥被加密处理后存储在注册表里面了

具体位置如下图所示:

对如何加密(or编码)感兴趣的朋友可以研究下函数sub_140216D80,目测就是个类Base64编码而已,在IDA中F5一下就跟看源码没啥区别。接下来,很容易想到要设置一个RegQueryValueExW断点用于重启时候跟踪加密后的数据是如何被验证的。然而,断点并没有被触发,赶紧看下它重启程序的时候做了什么于是下断:CreateProcessW,发现带了个/restart的参数,于是乎,咱们也在x64dbg命令行里面加入这个参数试试看,然而依旧没有触发,难道写入的注册表键值重启不验证吗?显然这是不可能的,问题出在哪儿呢?这个时候,赶紧拿出另外一个辅助利器:Procmon,设置好过滤参数后,启动程序,看下有无注册表指定位置的访问。

很明显,程序确实访问了重启前设置的键值,于是咱们点开这个堆栈看下:

在上面标记处,咱们下个断点看看。启动程序正常断入,单步跟踪下来到了这里:

是目标函数啊,难道之前API断点,断了个假的API?!,看下之前设置的发现,原来系统默认断的是kernel32.RegQueryValueEx,难怪没有出来!

Okay,继续往下跟,注意先回溯到主要函数,这个是咱们分析的主干所在,可以清晰地了解程序的运行轨迹!在这里发现了一个很重要的函数sub_140013450,如下图,这个时候打开IDA,F5偷个懒,看下程序主干逻辑是咋样的。

然后继续跟,读出用户名、序列号后,调用sub_140013E0C函数,跟进去发现了一个有意思的字符串:license.dat,大概率这里是有个文件程序需要去Check下,这个时候,为了快速确认此行为,可以继续使用ProcMon,发现如下:

果然,程序一方面去读取在注册表里面既有存储的用户名、序列号,也去尝试在程序所在路径寻找是否有既有生成的已注册文件。接下来就到了判断注册的过程。。。。

让这个返回值为3???,Check下效果先。

这个保护也太弱了吧。。。。。

0x2 解决方案及成果

方案一:最简单的解决方案,让IsRegistered这个函数的返回值一直为3即可,修改下OpCode问题就解决了(这里略过)。

方案二:研究下注册算法,写个通用的注册机看看。【不能写、不能写、不能写。。。】

Uninstall Tool 破解手记相关推荐

  1. Uninstall tool 3.6.0 授权版

    Uninstall Tool是一款小巧强大的专业卸载工具.它比Windows自带的"添加/删除程序"功能快3倍! 可移除系统自带程序功能所不能删除的程序,使用强制删除可卸载注册表相 ...

  2. 迈克菲官方卸载软件以及Uninstall Tool适合清理注册表的软件集合

    我大一加入了学校的电脑协会,专门无偿的为学校的小姐姐修电脑!前期一些简单的却是容易,随便搞都可以搞定!然后遇到合适的借机问个微信--我技术强硬,以后遇到电脑的难题就找我哦!(然而修机修得好,备胎当到老 ...

  3. 卸载软件-Uninstall Tool(无残留)

    Win资源分享目录 Win资源分享目录 Uninstall Tool Uninstaller that performs clean removal of any program from your ...

  4. 卸载python2.7_系统卸载器(Uninstall Tool)

    系统卸载器UninstallTool可替代系统卸载程序的软件,UninstallTool可显示隐藏的安装程序,按名称过滤已安装程序的列表,强行卸载程序,浏览注册表项目,保存安装程序列表. Uninst ...

  5. 专业卸载工具Uninstall Tool软件安装教程

    Uninstall Tool是一款小巧强大的专业卸载工具.它比Windows自带的"添加/删除程序"功能快3倍! 它可移除系统自带程序功能所不能删除的程序,使用强制删除可卸载注册表 ...

  6. 技术人员必备的便携版卸载清理工具 - Uninstall Tool 3 便携版直接U盘中启动软件,专为单个用户在多台电脑上使用而设计的。

    Uninstall Tool ,快速.强大的卸载清理软件,可完全彻底删除已安装软件.彻底删除不需要的应用程序,实时安装监视器.控制在系统启动时运行的应用.有效,强大的应用程序,具有简单而直观的界面. ...

  7. 软件分享1—Windows系统必备卸载工具[Uninstall Tool]

    软件分享1-Windows系统必备卸载工具[Uninstall Tool] 1 Uninstall Tool 软件介绍 2 Uninstall Tool 软件安装 3 Uninstall Tool 软 ...

  8. FlyTreeView V4.3 破解手记

    FlyTreeView V4.3 破解手记 Posted on 2008-07-12 13:27 快乐家++ 阅读(247) 评论(2)  编辑 收藏 网摘 所属分类: FlyTreeView Bod ...

  9. safeengine虚拟机licence破解手记

    声明:请支持使用正版软件,尊重原作者的劳动成果,此文只做技术交流,如有他人利用,产生后果,不负任何责任. Safengine是一个具有反调试.反附加.动态自效验等功能,同时提供了对代码的变形.乱序和虚 ...

最新文章

  1. 【研究】大脑如何在“知道”与“无知”之间做出决定
  2. Java虚拟机——Java内存区域与内存溢出
  3. 一个有关Update类型的存储过程的问题
  4. matlab 功率谱密度 汉宁窗_如何理解随机振动的功率谱密度?
  5. 笔记本电脑键盘切换_真想本小新13pro搭档,笔记本电脑周边好物清单推荐
  6. 怎么用Python获取全网最全的杰尼龟表情包
  7. poj3252Round Numbers
  8. 报错 插入更新_CentOS中linux网络报错 connect: Network is unreachable问题
  9. BigDFT的编译运行
  10. OA打造企业“最强大脑”
  11. 通过mysql修改后台密码_怎么通过修改数据库修改网站后台的管理员密码?
  12. 数据字典chm制作教程
  13. C++控制台五子棋(带背景音乐)
  14. 2019最新IDEA Java教学视频课程资料
  15. 还在考驾照的你知道汽车是怎么动起来的吗?
  16. Codeforces Round #703 (Div. 2)A. Shifting Stacks
  17. ipad和android平板应用,排名前100的iPad应用中只有一半支持Android平板
  18. Windows上搭建安卓的JAVA开发环境(Eclipse版本)
  19. 强烈推荐 10 本我私藏的数据库书单,附读书方法,java程序设计项目化教程
  20. 【转码方式】-Base64

热门文章

  1. socket函数接口
  2. cad调了比例因子没反应_为什么你总混淆各种CAD命令?
  3. ArcGIS软件CAD数据通过转换建立GIS数据库
  4. 哪些数码好物值得在开学季入手,推荐几款数码好物
  5. 什么是智能会议平板?
  6. Windows下学习C语言有哪些集成开发软件?
  7. 技术面试官的9大误区
  8. JavaScript模块机制
  9. spring的shema文件如何读取
  10. C++语言课程设计——超市商品管理系统