[Crack] IDA 9.0 SP1 Pro + Гайд по установке

JustAmnesia

Новичок
Автор темы
12
24
День добрый, пользователи форума Blast Hack 👋

⚠️ Дисклеймер ⚠️
Данный патч предназначен исключительно для тестирования программы. После тестирования, пожалуйста, приобретите лицензию, чтобы поддержать разработчиков


Хочу представить вам пропатченную версию IDA Pro SP1 :)

Далее пойдёт гайд по установки и применения патча
Скачайте архив из ссылки -> (VT ниже)
В архиве вы найдёте файл ida-pro_90sp1_x64win.exe. Запустите его — и вы увидите следующий экран.

1.png


Нажмите кнопку — Next
После этого появится лицензионное соглашение EULA. Прочитайте его, переключите radio button на «I accept the agreement» и нажмите — Next.

2.png


Далее нажмите на иконку папки (см. скриншот ниже) и затем кнопку — Next.
3.png

Затем нажмите кнопку — Next ещё 4 раза (см. скриншоты ниже).

4.png
5.png

6.png
7.png


Наконец, нажмите кнопку — Finish

8.png


Поздравляю, вы установили IDA! Перейдите в папку с IDA (см. скриншоты ниже).

9.png

f.png


Далее нужно распоковать файлы из архива, я использую 7zip (no ad)

а.png

Выбираем эти 2 файла, и переносим их в папку с ida

gf.png


12.png


Запускаем и видим, что всё работает
13.png
14.png


Если вы хотите изменить имя лицензии, откройте файл idapro.hexlic в любом удобном редакторе и замените «Amnesia» на нужное вам название. При необходимости можно изменить также адрес электронной почты.


Также, если вы хотите сгенерировать свой файл idapro.hexlic, вы можете воспользоваться файлом main.cpp из архива.

P.S Обычный установщик ida

cert.png

https://www.virustotal.com/gui/file...01f93149491073f3d362f711cab31719f11/detection - > ida-pro_90sp1_x64win.exe
https://www.virustotal.com/gui/file/8cf95453d543b0a7750cc034d44c3ec8419f52bb3f479e5b2707554de656444e -> ida.dll


Changelog для IDA 9.0sp1 -> https://docs.hex-rays.com/release-notes/9_0sp1


P.S. Это моя первая статья, не судите строго.
 
Последнее редактирование:

zemmel

Новичок
1
1
ida pro 9.0:
import json
import hashlib
import os
 
license = {
    "header": {"version": 1},
    "payload": {
        "name": "exetools",
        "email": "exetools@hex-rays.com",
        "licenses": [
            {
                "id": "48-2137-ACAB-99",
                "license_type": "named",
                "product": "IDA",
                "seats": 1,
                "start_date": "2024-08-10 00:00:00",
                "end_date": "2033-12-31 23:59:59",  # This can't be more than 10 years!
                "issued_on": "2024-08-10 00:00:00",
                "owner": "exetools",
                "add_ons": [
                ],
                "features": [],
            }
        ],
    },
}
 
 
def add_every_addon(license):
    platforms = [
        "W",  # Windows
        "L",  # Linux
        "M",  # macOS
    ]
    addons = [
        "HEXX86",
        "HEXX64",
        "HEXARM",
        "HEXARM64",
        "HEXMIPS",
        "HEXMIPS64",
        "HEXPPC",
        "HEXPPC64",
        "HEXRV64",
        "HEXARC",
        "HEXARC64",
        # Probably cloud?
        # "HEXCX86",
        # "HEXCX64",
        # "HEXCARM",
        # "HEXCARM64",
        # "HEXCMIPS",
        # "HEXCMIPS64",
        # "HEXCPPC",
        # "HEXCPPC64",
        # "HEXCRV",
        # "HEXCRV64",
        # "HEXCARC",
        # "HEXCARC64",
    ]
 
    i = 0
    for addon in addons:
        i += 1
        license["payload"]["licenses"][0]["add_ons"].append(
            {
                "id": f"48-1337-DEAD-{i:02}",
                "code": addon,
                "owner": license["payload"]["licenses"][0]["id"],
                "start_date": "2024-08-10 00:00:00",
                "end_date": "2033-12-31 23:59:59",
            }
        )
 
add_every_addon(license)
 
 
def json_stringify_alphabetical(obj):
    return json.dumps(obj, sort_keys=True, separators=(",", ":"))
 
 
def buf_to_bigint(buf):
    return int.from_bytes(buf, byteorder="little")
 
 
def bigint_to_buf(i):
    return i.to_bytes((i.bit_length() + 7) // 8, byteorder="little")
 
 
# Yup, you only have to patch 5c -> cb in libida64.so
pub_modulus_hexrays = buf_to_bigint(
    bytes.fromhex(
        "edfd425cf978546e8911225884436c57140525650bcf6ebfe80edbc5fb1de68f4c66c29cb22eb668788afcb0abbb718044584b810f8970cddf227385f75d5dddd91d4f18937a08aa83b28c49d12dc92e7505bb38809e91bd0fbd2f2e6ab1d2e33c0c55d5bddd478ee8bf845fcef3c82b9d2929ecb71f4d1b3db96e3a8e7aaf93"
    )
)
pub_modulus_patched = buf_to_bigint(
    bytes.fromhex(
        "edfd42cbf978546e8911225884436c57140525650bcf6ebfe80edbc5fb1de68f4c66c29cb22eb668788afcb0abbb718044584b810f8970cddf227385f75d5dddd91d4f18937a08aa83b28c49d12dc92e7505bb38809e91bd0fbd2f2e6ab1d2e33c0c55d5bddd478ee8bf845fcef3c82b9d2929ecb71f4d1b3db96e3a8e7aaf93"
    )
)
 
private_key = buf_to_bigint(
    bytes.fromhex(
        "77c86abbb7f3bb134436797b68ff47beb1a5457816608dbfb72641814dd464dd640d711d5732d3017a1c4e63d835822f00a4eab619a2c4791cf33f9f57f9c2ae4d9eed9981e79ac9b8f8a411f68f25b9f0c05d04d11e22a3a0d8d4672b56a61f1532282ff4e4e74759e832b70e98b9d102d07e9fb9ba8d15810b144970029874"
    )
)
 
 
def decrypt(message):
    decrypted = pow(buf_to_bigint(message), exponent, pub_modulus_patched)
    decrypted = bigint_to_buf(decrypted)
    return decrypted[::-1]
 
 
def encrypt(message):
    encrypted = pow(buf_to_bigint(message[::-1]), private_key, pub_modulus_patched)
    encrypted = bigint_to_buf(encrypted)
    return encrypted
 
 
exponent = 0x13
 
 
def sign_hexlic(payload: dict) -> str:
    data = {"payload": payload}
    data_str = json_stringify_alphabetical(data)
 
    buffer = bytearray(128)
    # first 33 bytes are random
    for i in range(33):
        buffer[i] = 0x42
 
    # compute sha256 of the data
    sha256 = hashlib.sha256()
    sha256.update(data_str.encode())
    digest = sha256.digest()
 
    # copy the sha256 digest to the buffer
    for i in range(32):
        buffer[33 + i] = digest[i]
 
    # encrypt the buffer
    encrypted = encrypt(buffer)
 
    return encrypted.hex().upper()
 
 
def generate_patched_dll(filename):
    if not os.path.exists(filename):
        print(f"Didn't find {filename}, skipping patch generation")
        return
 
    with open(filename, "rb") as f:
        data = f.read()
 
        if data.find(bytes.fromhex("EDFD42CBF978")) != -1:
            print(f"{filename} looks to be already patched :)")
            return
        
        if data.find(bytes.fromhex("EDFD425CF978")) == -1:
            print(f"{filename} doesn't contain the original modulus.")
            return
 
        data = data.replace(
            bytes.fromhex("EDFD425CF978"), bytes.fromhex("EDFD42CBF978")
        )
 
        patched_filename = f"{filename}.patched"
        with open(patched_filename, "wb") as f:
            f.write(data)
 
        print(f"Generated modulus patch to {patched_filename}! To apply the patch, replace the original file with the patched file")
 
 
license["signature"] = sign_hexlic(license["payload"])
 
serialized = json_stringify_alphabetical(license)
 
# write to ida.hexlic
filename = "ida.hexlic"
 
with open(filename, "w") as f:
    f.write(serialized)
 
print(f"Saved new license to {filename}!")
 
generate_patched_dll("ida.dll")
generate_patched_dll("ida64.dll")
generate_patched_dll("libida.so")
generate_patched_dll("libida64.so")
generate_patched_dll("libida.dylib")
generate_patched_dll("libida64.dylib")
 
  • Нравится
Реакции: JustAmnesia

whyega52

Eblang головного мозга
Модератор
2,853
2,817
День добрый, пользователи форума Blast Hack 👋

⚠️ Дисклеймер ⚠️
Данный патч предназначен исключительно для тестирования программы. После тестирования, пожалуйста, приобретите лицензию, чтобы поддержать разработчиков


Хочу представить вам пропатченную версию IDA Pro SP1 :)

Далее пойдёт гайд по установки и применения патча
Скачайте архив из ссылки -> (VT ниже)
В архиве вы найдёте файл ida-pro_90sp1_x64win.exe. Запустите его — и вы увидите следующий экран.

Посмотреть вложение 263608

Нажмите кнопку — Next
После этого появится лицензионное соглашение EULA. Прочитайте его, переключите radio button на «I accept the agreement» и нажмите — Next.

Посмотреть вложение 263609

Далее нажмите на иконку папки (см. скриншот ниже) и затем кнопку — Next.
Посмотреть вложение 263612
Затем нажмите кнопку — Next ещё 4 раза (см. скриншоты ниже).

Посмотреть вложение 263614Посмотреть вложение 263615
Посмотреть вложение 263616Посмотреть вложение 263617

Наконец, нажмите кнопку — Finish

Посмотреть вложение 263618

Поздравляю, вы установили IDA! Перейдите в папку с IDA (см. скриншоты ниже).

Посмотреть вложение 263620
Посмотреть вложение 263636

Далее нужно распоковать файлы из архива, я использую 7zip (no ad)

Посмотреть вложение 263637
Выбираем эти 2 файла, и переносим их в папку с ida

Посмотреть вложение 263638

Посмотреть вложение 263622

Запускаем и видим, что всё работает
Посмотреть вложение 263626Посмотреть вложение 263627

Если вы хотите изменить имя лицензии, откройте файл idapro.hexlic в любом удобном редакторе и замените «Amnesia» на нужное вам название. При необходимости можно изменить также адрес электронной почты.


Также, если вы хотите сгенерировать свой файл idapro.hexlic, вы можете воспользоваться файлом main.cpp из архива.

P.S Обычный установщик ida

Посмотреть вложение 263642
https://www.virustotal.com/gui/file...01f93149491073f3d362f711cab31719f11/detection - > ida-pro_90sp1_x64win.exe
https://www.virustotal.com/gui/file/8cf95453d543b0a7750cc034d44c3ec8419f52bb3f479e5b2707554de656444e -> ida.dll


Changelog для IDA 9.0sp1 -> https://docs.hex-rays.com/release-notes/9_0sp1


P.S. Это моя первая статья, не судите строго.
Опять ссылка дельнулась