小白第一次注册机编写,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)版

话说本来没有准备写这个的。。。
步过看起来,这个算法不是很复杂,于是顺手就写了一下。。。
bat没有获取ASCII的方法,所以很蛋疼的写了个call,不是很聪明的办法。
使用起来其实比上面两个都简单:
复制该段代码,新建一个文本,粘贴代码,保存,后缀改为.bat|.cmd双击即可使用。。。
界面就没做,懒得。。。

注:因为论坛的网页编码是UTF-8,因此直接复制到文本也是UTF-8的。
而bat文件需要ACSII格式,因此直接复制保存会乱码,如图46所示,
因此需要转码,最简单的办法就是如图47所示,另存为的时候选择全部文件-编码为ACSI-手动输入后缀".bat|.cmd"-确定

图46
(图46)

图47
(图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
(图48)

#结束语

小计:
小计

本文较完整的记录了本人由爆破,到追码,再到编写注册机的全过程
全过程,是因为本文写的十分详细,就是为了想和那些想写注册机,又没有多少基础的小白们一起学习,共同进步,
较完整,是因为其实写出来的是想做为教程,而不是完整的再现我是如何一步步走错而又从头开始分析的,
我需要告诉大家的是正确的(或者是比较正确)过程,而不是和大家分享我是如何走错的,
这个软件我破解的时候大概用了三四种方法找到这个关键的call,
但是其他的或多或少都会有一些繁琐或是错误之处,最后,在写教程的时候,我才发现之前走错的路是多么奇葩,
经过这次教程,我本身也学到很多,为什么前面几大块没有什么内容,我依然要打出来?不是为了字数,而是思路。。。

之前破解的时候,因为搜索了过多的(还是打错了)关键词,没有搜索到关键的字符串,即-(一)-2的步骤,
所以我是通过了弹窗回溯的方法、还有按钮事件的方法

注:有兴趣的朋友也可以自己试验一下,就会发现这么走是多么的困难。
另外,本软件是MFC写的,但是貌似是把MFC内置了?
万能断点是能用的,不过要在程序领空才能找到,一开始走了很多的弯路,正文没有体现出来,就在最后稍微吐个槽吧23333~

最后,祝大家都能在吾爱破解学有所成,
伸手、模仿的进步是微弱甚至没有的,需要自行钻研,不会就去查资料。
有疑惑就去提问
(最后再次感谢KaQqi 大佬对本文的支持)

全文终

全文终!撒花~~~~

相关