Загрузка...

CrackMe 6/10 | C++ | Anti-Debug | Strings Encrypt

Thread in CrackME / UnpackME created by pwn Jun 27, 2025. 712 views

  1. pwn
    pwn Topic starter Jun 27, 2025 189 Feb 9, 2022
    Примитивная обфускация строк и простой анти-дебаг
    Написал тестовый крякми чисто для теста своих знаний.
    Патчинг разрешен но узнать пароль в приоритете!
    !!!РЕЗУЛЬТАТЫ кидайте под хайд!!!

    VT
    СКАЧАТЬ
    Если заметите какие-то баги, пишите! ( вероятно они есть, сорри я рукожоп )
     
    1. GOKOL
      avatarpwn, PASS132SECRETIK
    2. LIMP
      avatarGOKOL, кинь под хайд
  2. splaled
    splaled Jul 7, 2025 0 Apr 1, 2025
     
  3. syscall
    syscall Aug 19, 2025 Banned 1 Jul 17, 2025
    0/10

    encrypted bytes ^ 0x5A
     
    1. pwn Topic starter
    2. syscall
      avatarpwn, у тебя ссылки на всех крякми сдохли, пофикси
  4. ночь
    Python
    import ida_kernwin
    import idc
    import ida_bytes

    xor_key = [0x5a, 0xc3, 0x1f, 0xb7, 0x8e, 0xd2, 0x4b, 0xa9]
    def decrypt_string(encrypted_str_addr):
    str_len = 0
    for _ in range(100):
    b = ida_bytes.get_byte(encrypted_str_addr + str_len)
    if b == 0:
    break
    str_len += 1
    print("String length:", str_len)
    encrypted_str = ida_bytes.get_bytes(encrypted_str_addr, str_len)
    decrypted = bytearray()
    for i in range(str_len):
    decrypted.append(encrypted_str[i] ^ xor_key[i % len(xor_key)])
    return decrypted.decode(errors='ignore')

    encrypted_addr = ida_kernwin.ask_addr(0, "Enter encrypted string address:")
    decrypted_str = decrypt_string(encrypted_addr)
    ida_kernwin.msg("Decrypted string: {}".format(decrypted_str))
    idc.set_cmt(encrypted_addr, "Decrypted: {}".format(decrypted_str), 0)
    вот начеркал скрипт иды для тех кто хочет расшифровать строки
    сразу в глаза бросаеться xor декрипт строки. ключ: 5a c3 1f b7 8e d2 4b a9. он также лежит по адрессу 038498
    [IMG]
    я выше приложил скрипт декрипта строк
    выглядит так се если честно. вот результат
    [IMG]
    первые 2 функции выглядят похоже. если упускать string encryption:

    C
      // вырезал расшифровку и дешифровку
    kernelHandle = GetModuleHandleA(kernel32dll);
    if ( !kernelHandle )
    return 0;
    ProcAddress = GetProcAddress(kernelHandle, str_GetProcAddress);
    v10 = -1;
    if ( !ProcAddress )
    return 0;
    v14 = (unsigned int (*)(void))((__int64 (__fastcall *)(HMODULE, _BYTE *))ProcAddress)(
    kernelHandle,
    str_IsRemoteDebuggerPresent);
    return v14 && v14() != 0;
    дальше идет проверка на peb которую кстати x64dbg умеет обходить без плагинов
    [IMG]
    следуюющие 2 функции уже поинтерестнее

    [IMG]
    для начала берем имя родительского процесса
    [IMG]
    и дальше там сложные расшифровки и тд и проверка на блеклист
    [IMG]
    тут примерно так же
    [IMG] не очень читаемо но суть вы уловили
    [IMG]
    дальше идут страшные проверки которые мы упустим тк мне лень думать в 2 часа ночи

    потом мы ставим бряк на любую инструкцию и вот те на. нас ликвидируют(
    дело вот в чем
    [IMG]
    если вкратце то то он считает хеш секции с кодом и проверяет его на целостность
    [IMG]
    [IMG]
    :roflanebalo:
    просто меняем в скрипте ключ на xor_key = [0x5a]
    [IMG]
    неплохо но думаю не 6/10
     
    1. pwn Topic starter
      avatarночь, Красачик, прикольный разбор
Loading...