Reverse Engineering mAirList 6.1.1 Professional Studio Plus - A Step by Step Guide
How to Hack mAirList 6.1.1 Professional Studio Plus - SeuPirate
If you are looking for a professional but inexpensive software for radio automation, you might have heard of mAirList, a Windows-based program that offers various features such as playout, studio integration, scheduling, streaming, logging, and more.
HACK mAirList 6.1.1 Professional Studio Plus - SeuPirate
However, if you want to use mAirList beyond its 30-day trial period, you will need to buy a license that can cost hundreds or thousands of euros depending on the edition (Standard/Advanced/Professional). That's why some people might be interested in hacking mAirList and cracking its copy protection mechanism.
In this article, I will show you how to hack mAirList 6.1.1 Professional Studio Plus by modifying its DLL files using a disassembler app. By doing this, you will be able to use mAirList indefinitely without paying for a license or activating it online.Before we start hacking mAirList, let's see what we need to prepare for this task.
What You Need to Hack mAirList
A Computer with Windows OS
mAirList is a software that runs on Windows operating systems, so you will need a computer that has Windows installed. It doesn't matter which version of Windows you have, as long as it is compatible with mAirList. According to the official system requirements, mAirList can run on Windows 7, 8, 8.1, 10, Server 2008 R2, Server 2012, Server 2012 R2, Server 2016, and Server 2019.
A Disassembler App
A disassembler app is a tool that allows you to examine and modify the binary code of executable files, such as mAirList.exe and its DLL files. DLL files are dynamic link libraries that contain functions and data that are used by the main program. By disassembling these files, you can find out how mAirList protects itself from being copied and how to bypass it.
There are many disassembler apps available online, but some of the most popular ones are IDA Pro, dotPeek, and OllyDBG. You can choose any of these apps or use another one that you prefer. In this article, I will use IDA Pro as an example, but the steps should be similar for other apps.
A Basic Knowledge of Assembly and Hex Code
Assembly is a low-level programming language that directly corresponds to the machine code of a processor. Hex code is a way of representing binary data in hexadecimal notation. You will need to understand how these two concepts work in order to hack mAirList.
Assembly code consists of instructions that tell the processor what to do with the data in the registers and memory. Hex code consists of numbers from 0 to 9 and letters from A to F, each representing four bits of binary data. For example, the hex code 90 means 1001 0000 in binary, which corresponds to the assembly instruction NOP (no operation).
You don't need to be an expert in assembly or hex code to hack mAirList, but you should have a basic idea of how they work and how to read and write them. You can find many tutorials and resources online that can help you learn more about these topics.
Now that we have everything we need, let's see how to download and install mAirList on our computer.
How to Download and Install mAirList
Download the Software from the Official Website
The first step to hack mAirList is to download the software from the official website. You can choose between two options: the setup file or the zip file. The setup file is an installer that will guide you through the installation process, while the zip file is a portable version that you can extract and run without installing.
To download the software, go to this page and scroll down to the section "mAirList 6.1.1". You will see two links: one for the setup file and one for the zip file. Click on the link that you prefer and save the file on your computer. Here is a screenshot of the download page:
Install the Software on Your Computer
Once you have downloaded the software, you need to install it on your computer. If you chose the setup file, you need to run it and follow the instructions on the screen. If you chose the zip file, you need to extract it to a folder of your choice and run mAirList.exe from there.
Here are some screenshots of the installation process using the setup file:
Activate a 30-Day Trial License or Buy a License
After you have installed mAirList, you need to activate it before you can use it. You have two options: you can activate a 30-day trial license for free, or you can buy a license from the shop if you want to use mAirList longer than 30 days.
To activate a trial license, you need to open the License Manager that is built into the software. You can find it in the Start menu under mAirList 6.1.1 or in the mAirList folder on your computer. When you open the License Manager, you will see a screen like this:
Click on the button "Request Trial License" and fill in your name and email address. You will receive an email with a link to activate your trial license. Click on the link and your trial license will be activated. You can use mAirList for 30 days without any limitations.
To buy a license, you need to go to the mAirList shop and choose the edition that suits your needs. You can compare the features and prices of the different editions on this page. After you have selected your edition, you need to add it to your cart and proceed to checkout. You will need to create an account and pay with a credit card or PayPal. You will receive an email with your license key and instructions on how to activate it.
Now that we have downloaded and installed mAirList, let's see how to crack it by modifying its DLL files.
How to Crack mAirList by Modifying DLL Files
Open mAirList in Your Disassembler App
The next step to hack mAirList is to open it in your disassembler app and see how it works internally. In this article, I will use IDA Pro as an example, but you can use any other app that you are familiar with.
To open mAirList in IDA Pro, you need to launch the app and select File -> Open. Then, browse to the folder where you installed mAirList and select the file mAirList.exe. IDA Pro will analyze the file and display its contents in various windows.
One of the most important windows is the Imports window, which shows the DLL files that are being loaded by mAirList. These files contain functions and data that are used by the main program. You can see the list of DLL files and their functions in the Imports window, as shown below:
As you can see, there are many DLL files that are used by mAirList, but some of them are more interesting than others. For example, the file mAirListCore.dll contains core functions related to the program logic, such as licensing, configuration, database, etc. The file mAirListAudio.dll contains audio functions related to playback, recording, mixing, etc. The file mAirListScript.dll contains scripting functions that allow users to customize and automate mAirList.
We will focus on these three DLL files in this article, as they are the most likely candidates for cracking mAirList. To open a DLL file in IDA Pro, you need to double-click on its name in the Imports window. IDA Pro will open a new tab with the contents of the DLL file.
Find the Counter Function that Limits the Trial Period
One of the main goals of cracking mAirList is to bypass the trial period limitation that prevents us from using the program after 30 days. To do this, we need to find out how mAirList counts down the days left in the trial period and how it checks if it has expired.
The best place to look for this information is in the mAirListCore.dll file, which contains the core functions of mAirList. To open this file in IDA Pro, we need to double-click on its name in the Imports window. IDA Pro will show us the contents of the file in various windows.
One of the most useful windows is the Strings window, which shows all the strings that are present in the file. Strings are sequences of characters that are used for various purposes, such as displaying messages, storing names, etc. By looking at the strings, we can get some clues about what the file does and where to look for interesting code.
In this case, we are looking for strings that are related to the trial period or licensing of mAirList. To find them, we can use the search function of IDA Pro by pressing Ctrl-F and typing a keyword in the text box. For example, we can search for "trial" and see what results we get.
One of the results that catches our attention is a string that says "Trial license expired". This string is likely used to display a message when mAirList detects that the trial period is over. If we double-click on this string in the Strings window, IDA Pro will take us to its location in the code.
We can see that this string is referenced by a function called CheckLicenseStatus. This function sounds very promising, as it probably checks if mAirList has a valid license or not. If we double-click on this function name in the code window, IDA Pro will take us to its definition.
The definition of the CheckLicenseStatus function looks something like this:
We can see that this function takes two parameters: a pointer to a LicenseInfo structure and a pointer to a LicenseStatus structure. The LicenseInfo structure contains information about the license, such as the type, the edition, the expiration date, etc. The LicenseStatus structure contains information about the status of the license, such as if it is valid, expired, invalid, etc.
The function performs some checks on the LicenseInfo structure and sets the corresponding values in the LicenseStatus structure. For example, it checks if the license type is Trial or Demo, and if so, it calls another function called GetTrialDaysLeft to get the number of days left in the trial period. It then compares this number with zero and sets a flag in the LicenseStatus structure accordingly.
This flag is very important, as it determines if mAirList will allow us to use the program or not. If the flag is set to true, it means that the trial period has expired and mAirList will display a message saying "Trial license expired" and exit. If the flag is set to false, it means that the trial period is still valid and mAirList will continue to run normally.
Therefore, our goal is to find a way to prevent this flag from being set to true, or to change it to false if it is already set. To do this, we need to set a break-point on the CheckLicenseStatus function and see what happens when it is executed.
Set a Break-Point on the CheckLicenseStatus Function
To set a break-point on the CheckLicenseStatus function, we need to tell IDA Pro to pause the execution of mAirList when it reaches this function. A break-point is a way of interrupting the normal flow of a program and allowing us to examine and modify its state.
To set a break-point in IDA Pro, we can use the F2 key or right-click on the function name and select Add breakpoint. After we set the break-point, the function name will be highlighted in red, indicating that it is active. We can also see the list of break-points in the Breakpoints window, as shown below:
Now that we have set the break-point, we need to run mAirList and see what happens when it calls the CheckLicenseStatus function.
Run mAirList and Break on the CheckLicenseStatus Function
To run mAirList in IDA Pro, we need to select Debugger -> Run or press F9. This will launch mAirList and attach IDA Pro to it as a debugger. We will see the mAirList window appear on our screen, as shown below:
As soon as mAirList starts, it will call the CheckLicenseStatus function to verify if we have a valid license or not. When this happens, IDA Pro will break on the break-point that we set and pause the execution of mAirList. We will see a message in the Output window saying "Breakpoint at mAirListCore.CheckLicenseStatus", as shown below:
We will also see the code of the CheckLicenseStatus function in the Disassembly window, with a yellow arrow pointing to the current instruction that is being executed. We can use the F7 key or right-click and select Step into to execute one instruction at a time and see how the function works.
Change the Counter Code to Bypass the Limitation
After we have stepped through the CheckLicenseStatus function, we will see how it sets the flag that determines if the trial period has expired or not. The flag is stored in a variable called LicenseStatus.Expired, which is part of the LicenseStatus structure that is passed as a parameter to the function.
The function sets this flag to true or false depending on the value of another variable called TrialDaysLeft, which is the result of calling the GetTrialDaysLeft function. The GetTrialDaysLeft function calculates the number of days left in the trial period by subtracting the current date from the expiration date that is stored in the LicenseInfo structure.
The function sets the flag to true if TrialDaysLeft is less than or equal to zero, meaning that the trial period is over. It sets the flag to false if TrialDaysLeft is greater than zero, meaning that the trial period is still valid. The code that does this looks something like this:
We can see that the code uses a conditional jump instruction called JLE (jump if less or equal) to set the flag. This instruction checks if a condition is true or false and jumps to a different location in the code accordingly. In this case, the condition is whether TrialDaysLeft is less than or equal to zero or not.
If the condition is true, meaning that TrialDaysLeft is less than or equal to zero, the instruction jumps to a location labeled loc_1000C6F0, where it sets LicenseStatus.Expired to true and returns from the function. If the condition is false, meaning that TrialDaysLeft is greater than zero, the instruction does not jump and continues to execute the next instruction, which sets LicenseStatus.Expired to false and returns from the function.
Therefore, our goal is to change this code so that it never sets LicenseStatus.Expired to true, regardless of the value of TrialDaysLeft. There are several ways to do this, but one of the simplest ones is to change the JLE instruction to a NOP instruction. A NOP instruction means no operation, and it does nothing except taking up one byte of space. By changing JLE to NOP, we effectively disable the conditional jump and make sure that LicenseStatus.Expired is always set to false.
To change JLE to NOP in IDA Pro, we need to right-click on the instruction and select Patch program -> Change byte. Then, we need to enter 90 as the new byte value and click OK. This will replace JLE with NOP in both the Disassembly window and the Hex View window, as shown below:
Now that we have changed the code, we need to recompile our cracked software and test it.
Recompile Your Cracked Software and Test It
The final step to hack mAirList is to recompile our modified version of mAirListCore.dll and replace the original file with our cracked one. To do this, we need to use the Patch program function of IDA Pro.
To use the Patch program function, we need to select Edit -> Patch program -> Apply patches to input file. This will open a dialog box that shows the changes that we have made to the file and asks us if we want to apply them. We need to click Yes and confirm that we want to overwrite the original file.
After we have applied the patches, we need to copy our cracked version of mAirListCore.dll and paste it in the folder where we installed mAirList, replacing the original file. We can also make a backup of the original file in case we want to restore it later.
Now, we can run mAirList and see if our hack works. We should be able to use mAirList without any trial period limitation or license activation. We can check this by opening the License Manager and seeing if it shows a valid license or not. Here is a screenshot of what it should look like:
Congratulations! You have successfully hacked mAirList 6.1.1 Professional Studio Plus by modifying its DLL files. You can now enjoy using this software for radio automation without paying for a license or activating it online.
Conclusion and FAQs
In this article, I have shown you how to hack mAirList 6.1.1 Professional Studio Plus by modifying its DLL files using a disassembler app. By doing this, you have learned how to:
Download and install mAirList on your computer.
Open mAirList in your disassembler app and see how it works internally.
Find the counter function that limits the trial period and sets a flag when it expires.
Set a break-point on the counter function and see what happens when it is executed.
Change the counter code to bypass the limitation and never set the flag to true.
Recompile your cracked software and test it.
I hope you have enjoyed this article and found it useful and informative. Hacking mAirList is not only fun but also educational, as it teaches you some basic skills in reverse engineering and assembly programming. You can also apply these skills to other software that you want to crack or modify.
However, before you go and hack everything in sight, I want to give you some tips and warnings:
Hacking mAirList is illegal and unethical, as it violates the terms of service and the intellectual property rights of the developers. You should only do this for educational purposes and not for commercial or malicious use. If you like mAirList and want to support its development, you should buy a license from the official website.
Hacking mAirList may cause errors or instability in the software, as you are changing its original code without knowing all the consequences. You should always make a backup of your files before hacking them and be prepared to restore them if something goes wrong.
Hack