Додаткові навички допомагають в роботі (UA/EN)

«Урочисто присягаю не затівати нічого доброго»

Чули таку фразу? Вона з Гаррі Поттера, коли він користувався Картою Мародера. Чомусь саме ця фраза згадалась мені коли я зіткнувся з однією проблемою та спробував її вирішити...

Дана стаття носить виключно інформативний характер! Автор НЕ закликає повторювати наведені дії та НЕ несе відповідальності.
З етичних міркувань назва продукту не вказується.

Одно разу мені необхідно було використовуючи протокол SNMP отримати дані з нього. Для роботи з цим протоколом є багато хороших програм але мені найбільше підійшла платна програма. Вона мала пробну версію у кілька днів. Як виявилось цього часу, щоб розібратись з пристроєм, мені стало мало, а купувати ліцензію я не хотів бо ціна була в районі 250$. Я вирішив спробувати чи є якийсь варіант збільшити пробний період у цій програмі.
Через Detect It Easy отримав інформацію про мову на якій вона написана, чи захищений код та чим.

Спробував проаналізувати через DnSpy і отримав купу незрозумілого.

Як видно (protector - Eazfuscator) у шифруванні коду було використано обфускацію. Це добре, бо розробник продумав захист своєї програми. Я ж вирішив піти далі. За допомогою гугла та кількох програм незрозумілий текст став більш читабельним.

Почали відображатись дані по назвам функцій, класів та можна розібратись з логікою. Тепер стало трохи легше. Далі пішов рутинний процес дослідження роботи програми, відслідковування запитів та перевірок ліценції… В ідеалі це зробити так, щоб програма не відслідковувала або ж не брала до уваги скільки часу вона працює. Через деякий час я знайшов ділянку коду, яка перевіряє час демонстраційної роботи програми.

Також знайшов ділянки звідки брались дати першого та останнього запуску.
Маючи усю цю інформацію я вирішив піти наступним шляхом: видалити частину коду, яка перевіряє нашу ліценцію.
Як наслідок за допомогою цієї програми було вирішено основну задачу з пристроєм та підвищено свої знання у реверс інжинірингу.

P.S.
Я навмисно не вказував назви програм, які використовувались, та було пропущено рад фото, які б могли зашкодити автору програми. Особисто я надаю перевагу ліценціям але бувають і виключення)


"I solemnly swear not to do anything good"

Have you heard such a phrase? She is from Harry Potter when he used the Marauder's Map. For some reason, this phrase came to mind when I faced a problem and tried to solve it...

This article is purely informative! The author NOT encourages repeating the given actions and NOT bears responsibility.
For ethical reasons, the name of the product is not indicated.

Once I needed to use SNMP protocol to get data from it. There are many good programs for working with this protocol, but the paid program suited me best. She had a trial version in a few days. As it turned out, I didn't have enough time to deal with the device, and I didn't want to buy a license because the price was around $250. I decided to try if there is any option to increase the trial period in this program.
Through Detect It Easy I received information about the language in which it is written, whether the code is protected and what.

Tried parsing through DnSpy and got a bunch of crap.

As you can see (protector - Eazfuscator) obfuscation was used in the encryption of the code. This is good, because the developer has thought through the protection of his program. I decided to go further. With the help of Google and several programs, the obscure text became more readable.

Data began to be displayed by the names of functions, classes, and you can figure out the logic. Now it became a little easier. Then followed the routine process of studying the program's operation, tracking requests and license checks... Ideally, this should be done so that the program does not track or does not take into account how long it has been running. After a while, I found a piece of code that checks the runtime of the demo application.

I also found the sites from which the dates of the first and last launch were taken.
With all this information, I decided to take the following route: remove the part of the code that checks our license.
As a result, with the help of this program, the main problem with the device was solved and the knowledge of reverse engineering was increased.

P.S.
I deliberately did not specify the names of the programs that were used, and some photos that could harm the author of the program were omitted. Personally, I prefer licenses, but there are exceptions)