小白第一次注册机编写,c/bat/易某言(不好意思说2333)
小白第一次注册机编写,c/bat/易某言(不好意思说出口2333)
- 零、视频教程
- 一、免责声明
- 二、软件相关信息
- 三、查壳
- 四、分析软件注册流程
- 五、IDA载入
- 六、OD载入
- (一)、找关键跳转
- 1、查看代码
- 2、搜索字符串
- (1)、误解
- (2)、正解
- (二)、尝试爆破
- 1、分析、猜测
- 2、验证猜想
- (三)、尝试追码
- 1、定位关键call
- 2、去除花指令
- 3、单步步过,猜测call的作用
- 4、跟进关键call
- 5、测试追出的真码
- (四)、注册码算法分析
- 1、取消已有的注册码授权
- 2、跟进关键call
- 3、跟进生成四位数的call
- 七、注册机的实现
- 易语言实现
- C语言实现
- C语言精简版
- c语言 (相对)完整版
- VC的QT界面版
- bat(cmd|dos)版
- 全文终
话说我觉得,这是目前我离【精华】最近的一次了
注:之前得到的那个精华不算完全原创。。。
更准确地说应该是学习的笔记,而不是纯自主的研究或是分析。。。
咳咳下面这个是原创的!!!!~~
第一次写注册机的教程,如有问题,还请大家斧正。
正文分界线:
https://www.52pojie.cn/thread-962376-1-1.html
(出处: 吾爱破解论坛)
B站直链:https://b23.tv/av53311014
http://www.sofeh.net/engl/?page_id=15
软件类型:win
软件大小:74.7MB
下载地址:http://dl.sofeh.net/download/soft-musicstudio4551.7z
注册方式:请求码(机器码生成),本地注册
分析方式:动态
使用软件:吾爱专版 OD(Ollydbg)(下载见爱盘)
分析人员:涛之雨
分析环境:WinXp
鸣谢:感谢 @KaQqi大佬抽出宝贵时间进行指导。
安卓APP版本
请移步本人的另一篇文章
Google Play的一款专业电子琴。ORG 2020 汉化 && 破解版
https://www.52pojie.cn/thread-947671-1-1.html
(出处:吾爱破解论坛)
https://www.52pojie.cn/thread-953570-1-1.html
(出处:吾爱破解论坛)
bat(cmd|dos)版
安卓APP版本
请移步本人的另一篇文章
Google Play的一款专业电子琴。ORG 2020 汉化 && 破解版
https://www.52pojie.cn/thread-947671-1-1.html
(出处:吾爱破解论坛)
(出处:吾爱破解论坛)
bat(cmd|dos)版
话说本来没有准备写这个的。。。
步过看起来,这个算法不是很复杂,于是顺手就写了一下。。。
bat没有获取ASCII的方法,所以很蛋疼的写了个call,不是很聪明的办法。
使用起来其实比上面两个都简单:
复制该段代码,新建一个文本,粘贴代码,保存,后缀改为.bat|.cmd双击即可使用。。。
界面就没做,懒得。。。
注:因为论坛的网页编码是UTF-8,因此直接复制到文本也是UTF-8的。
而bat文件需要ACSII格式,因此直接复制保存会乱码,如图46所示,
因此需要转码,最简单的办法就是如图47所示,另存为的时候选择全部文件-编码为ACSI-手动输入后缀".bat|.cmd"-确定。

(图46)

(图47)
@echo off
setlocal enableextensions enabledelayedexpansion
title 请支持正版!到官网购买正品以获取最新版和更好地服务 POWER BY 吾爱破解 涛之雨
color 1f
mode con:cols=80 lines=20
cls
set z=0
set /p w=请输入请求码,以回车键结束:
echo 加载中。。。。
set q=1
:nexti
if not "%w%"=="" (
set w_%q%=%w:~0,1%
call :v !w_%q%!
set x=!errorlevel!
set "x=!x!*%q%"
set /a "z=!x!+!z!"
set "w=%w:~1%"
set /a q+=1
goto :nexti)
echo 请稍后。。
set str=-
for /l %%i in (1,1,4) do (
call :s !z! %%i
set x=!errorlevel!
set m=!m!!x!
if %%i neq 4 set m=!m!%str%)
echo 请求码算出的校验值为:!m!
ping 127.0.0.1 > nul
echo 任意键退出
pause>nul
exist
:v
if %1==9 exit /b 57
if %1==8 exit /b 56
if %1==7 exit /b 55
if %1==6 exit /b 54
if %1==5 exit /b 53
if %1==4 exit /b 52
if %1==3 exit /b 51
if %1==2 exit /b 50
if %1==1 exit /b 49
if %1==0 exit /b 48
if %1==- exit /b 45
exit /b 0
:s
if %2==1 set l= 27
if %2==2 set l= 16
if %2==3 set l= 47
if %2==4 set l= 34
set /a tempcode = %1
set b = 0
:whilestart
set /a b = !tempcode! * 16 / l
if !b! leq 9999 exit /b !b!
set /a tempcode = !tempcode! /2
goto whilestart
效果图见图48。

(图48)
#结束语
小计:
本文较完整的记录了本人由爆破,到追码,再到编写注册机的全过程
全过程,是因为本文写的十分详细,就是为了想和那些想写注册机,又没有多少基础的小白们一起学习,共同进步,
较完整,是因为其实写出来的是想做为教程,而不是完整的再现我是如何一步步走错而又从头开始分析的,
我需要告诉大家的是正确的(或者是比较正确)过程,而不是和大家分享我是如何走错的,
这个软件我破解的时候大概用了三四种方法找到这个关键的call,
但是其他的或多或少都会有一些繁琐或是错误之处,最后,在写教程的时候,我才发现之前走错的路是多么奇葩,
经过这次教程,我本身也学到很多,为什么前面几大块没有什么内容,我依然要打出来?不是为了字数,而是思路。。。
之前破解的时候,因为搜索了过多的(还是打错了)关键词,没有搜索到关键的字符串,即六-(一)-2的步骤,
所以我是通过了弹窗回溯的方法、还有按钮事件的方法
注:有兴趣的朋友也可以自己试验一下,就会发现这么走是多么的困难。
另外,本软件是MFC写的,但是貌似是把MFC内置了?
万能断点是能用的,不过要在程序领空才能找到,一开始走了很多的弯路,正文没有体现出来,就在最后稍微吐个槽吧23333~
最后,祝大家都能在吾爱破解学有所成,
伸手、模仿的进步是微弱甚至没有的,需要自行钻研,不会就去查资料。
有疑惑就去提问
(最后再次感谢KaQqi 大佬对本文的支持)
全文终
全文终!撒花~~~~
