• XSS.stack #1 – первый литературный журнал от юзеров форума

Начал дед юзать нейронки..

waahoo

ворчливый дед
Эксперт
Регистрация
01.12.2010
Сообщения
843
Реакции
1 661
Ребят, меня переполняют эмоции и я аж решил написать это. Я совсем недавно начал всерьез дрючить нейронки и скажу Вам - я в восторге. Эта хрень, СhatGPT-4o, почти все знает. Она разжует за любую структуру Windows PE и даже напишет код для обработки нужной структуры, она знает WinAPI, она знает ответы почти на все вопросы которые могут возникнуть в процессе кодирования, она знает не только Windows, но и Linux на уровне эксперта. Я даже подумать не мог насколько это мощный инструмент. Ебаное все, слава богу, что я дожил до этого всего.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
она знает WinAPI
Знает, но все равно проверяй; т.к. когда оно не знает винапи, то выдумывает свои функции.
А так да, интересная вещь.
 
Я в молодости и не мечтал о том что доживу.
 
Знает, но все равно проверяй; т.к. когда оно не знает винапи, то выдумывает свои функции.
А так да, интересная вещь.
Та это понятно, что перепроверять надо, но она может тебя направить. Иногда столько времени тратишь, чтобы просто найти верный путь к решению проблемы, а тут за секунду получаешь это направление. Это ахренеть как круто.
 
Знает, но все равно проверяй; т.к. когда оно не знает винапи, то выдумывает свои функции.
А так да, интересная вещь.
Не знаю как по винапи, из последних опытов с питухоном, пока что сделал вывод, что последняя версия перестала придумывать несуществующие библиотеки и их несуществующие методы. Стало прямо заметно лучше.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Стало прямо заметно лучше.
Хз, я юзал только 3.5 или как там бесплатная

Спросите кому не сложно, можно ли декодировать на PHP данные, закодированные RtlCompressBuffer. В моем случае оно выдумывало х пойми что.
Или есть ли винапи, для зип архивов
 
Хз, я юзал только 3.5 или как там бесплатная

Спросите кому не сложно, можно ли декодировать на PHP данные, закодированные RtlCompressBuffer. В моем случае оно выдумывало х пойми что.
Или есть ли винапи, для зип архивов
Да, в PHP можно декодировать данные, закодированные с помощью RtlCompressBuffer, однако для этого потребуется использование расширений или библиотек, так как встроенные функции PHP не поддерживают этот формат напрямую.

RtlCompressBuffer — это метод сжатия данных, используемый в Windows, и он основан на алгоритме сжатия, который не является стандартным и не может быть декодирован с помощью стандартных PHP функций.

Для декодирования данных, закодированных с помощью RtlCompressBuffer, вы можете воспользоваться следующими подходами:

1. PECL расширение: Попробовать найти PECL расширение, которое может работать с форматом сжатия Windows. На данный момент таких решений может не быть.

2. Вызов внешних программ: Вызвать внешнюю утилиту или библиотеку, написанную на C или другом языке, которая может декодировать данные, и тогда получить результат в PHP. Вы можете использовать PHP функции для выполнения команд в терминале (exec, shell_exec и т.д.).

3. Использовать .NET или другие языки: Если вы работаете в окружении Windows, вы можете создать приложение на .NET, которое будет декодировать данные, а затем вызывать это приложение из PHP.

4. Портировать алгоритм: Если у вас есть доступ к алгоритму, вы можете попытаться реализовать его на PHP, но это может быть достаточно сложной задачей.

Для начала, если у вас есть .NET или доступ к C, это может быть наиболее удобным способом. Если вам нужно только разово разобрать данные, возможно, проще использовать утилиты командной строки.

Обратите внимание, что для работы с низкоуровневыми структурами данных может потребоваться хорошее понимание работы с памятью и форматами сжатия.

© GPT-4 бот
 
А мне подругому ответила, сча скринов накидаю, не копируется нормально.

Ответ на первый вопрос:
Screenshot 2024-07-23 at 01-34-58 ChatGPT.png

Screenshot 2024-07-23 at 01-35-38 ChatGPT.png

Ответ на второй вопрос:
Screenshot 2024-07-23 at 01-41-46 ChatGPT.png

Screenshot 2024-07-23 at 01-42-04 ChatGPT.png

Screenshot 2024-07-23 at 01-42-26 ChatGPT.png

Screenshot 2024-07-23 at 01-42-41 ChatGPT.png

Screenshot 2024-07-23 at 01-42-54 ChatGPT.png
 
Последнее редактирование:
Хз, я юзал только 3.5 или как там бесплатная

Спросите кому не сложно, можно ли декодировать на PHP данные, закодированные RtlCompressBuffer. В моем случае оно выдумывало х пойми что.
Или есть ли винапи, для зип архивов
Я в сравнении в качестве "старой" тоже имел ввиду 3.5 ) Сейчас бесплатная как я понимаю "4", а платная "4о"
Yes, data encoded using the RtlCompressBuffer function in Windows can be decoded using PHP, but it requires implementing or finding a library that can handle the specific compression algorithm used by RtlCompressBuffer.

RtlCompressBuffer uses several compression formats, including LZNT1, XPRESS, and XPRESS Huffman. Decoding data compressed by RtlCompressBuffer in PHP involves a few steps:

  1. Identify the Compression Algorithm: Determine which compression algorithm was used by RtlCompressBuffer when encoding the data.
  2. Find or Implement a Decoder: Look for a PHP library or implement the decoding algorithm in PHP. Libraries like ext-lz4, php-lz4, or php-snappy might be useful depending on the specific algorithm.
  3. Decode the Data: Use the appropriate PHP function or library to decode the compressed data.
Here's an example for decoding data compressed with the LZNT1 algorithm, which is one of the common formats used by RtlCompressBuffer.

Example of Decoding LZNT1 Data in PHP​

Currently, there isn't a native PHP function for LZNT1, but you can use external tools or libraries. Below is a conceptual approach:

  1. Use a C library: You can create a PHP extension or use PHP's FFI (Foreign Function Interface) to call a C library that supports LZNT1 decompression.
  2. Use an external tool: You could use a command-line tool that decompresses LZNT1 data and call it from PHP using exec().
Here is an example using PHP FFI:

First, create a C library for LZNT1 decompression. Save the following C code as lznt1.c and compile it as a shared library (lznt1.so on Unix-like systems, lznt1.dll on Windows):

C++:
#include <Windows.h>
#include <ntifs.h>

__declspec(dllexport) NTSTATUS decompress_lznt1(const char* input, size_t input_size, char* output, size_t output_size) {
    ULONG finalSize;
    NTSTATUS status = RtlDecompressBuffer(COMPRESSION_FORMAT_LZNT1, output, output_size, input, input_size, &finalSize);
    if (NT_SUCCESS(status)) {
        return finalSize;
    }
    return status;
}

Compile this using a suitable compiler like GCC or MSVC.

Next, create a PHP script to use this shared library:

PHP:
$ffi = FFI::cdef("
    int decompress_lznt1(const char* input, size_t input_size, char* output, size_t output_size);
", "path/to/lznt1.so");  // or "lznt1.dll" on Windows

$compressedData = ...; // your RtlCompressBuffer compressed data
$inputSize = strlen($compressedData);
$outputSize = 4096; // choose an appropriate size for the decompressed data
$outputBuffer = FFI::new("char[$outputSize]");

$result = $ffi->decompress_lznt1($compressedData, $inputSize, $outputBuffer, $outputSize);

if ($result >= 0) {
    $decompressedData = FFI::string($outputBuffer, $result);
    echo "Decompressed data: $decompressedData";
} else {
    echo "Decompression failed with status code: $result";
}

This example demonstrates how to use PHP's FFI to interface with a custom C library that decompresses LZNT1 data. The same approach can be used for other compression algorithms by modifying the C code accordingly.
If creating a C library and using FFI seems too complex, look for existing PHP libraries or extensions that support the required compression format, and adapt the example accordingly.

The Windows API (WinAPI) does not provide direct functions to handle ZIP archives. However, there are several ways to work with ZIP files on Windows using other libraries or tools:

  1. Shell Namespace API: This is a COM-based API that can manipulate ZIP files because Windows treats ZIP files as a special folder type. You can use the IShellDispatch interface to interact with ZIP files similarly to how you would with regular folders.
  2. Windows Compression API: Starting with Windows 8, there's the Compress and Decompress functions in the Cabinet.dll, but this is generally more suited for creating and extracting CAB files, not ZIP files directly.
  3. Third-party libraries: These are often more straightforward and robust for working with ZIP files. Popular libraries include:
    • zlib: A massively spiffy yet delicately unobtrusive compression library.
    • libzip: A C library for reading, creating, and modifying zip archives.
    • minizip: A library for ZIP compression and decompression based on zlib.
    • 7-Zip: Though not a library, 7-Zip's command-line interface can be invoked from your application to handle ZIP files.
  4. .NET Framework: If you're working in a managed environment, the .NET Framework provides classes like System.IO.Compression.ZipFile and System.IO.Compression.ZipArchive which make working with ZIP files straightforward.
Here's an example of how you might use the Shell Namespace API to extract files from a ZIP archive using C++:

C++:
#include <windows.h>
#include <shlobj.h>
#include <shobjidl.h>
#include <comdef.h>

int ExtractZip(const wchar_t* zipPath, const wchar_t* destPath) {
    HRESULT hr;
    IShellDispatch *pISD;
    Folder *pZippedFile = NULL;
    Folder *pDestination = NULL;
    VARIANT vZip, vDest, vOpt;

    // Initialize COM
    CoInitialize(NULL);

    // Get IShellDispatch interface
    hr = CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER, IID_IShellDispatch, (void **)&pISD);
    if (SUCCEEDED(hr)) {
        // Initialize source zip file
        VariantInit(&vZip);
        vZip.vt = VT_BSTR;
        vZip.bstrVal = SysAllocString(zipPath);

        // Initialize destination folder
        VariantInit(&vDest);
        vDest.vt = VT_BSTR;
        vDest.bstrVal = SysAllocString(destPath);

        // Get the Folder interface for the source zip file
        pISD->NameSpace(vZip, &pZippedFile);
        if (pZippedFile != NULL) {
            // Get the Folder interface for the destination folder
            pISD->NameSpace(vDest, &pDestination);
            if (pDestination != NULL) {
                // Extract the items from the zip file to the destination folder
                VariantInit(&vOpt);
                vOpt.vt = VT_I4;
                vOpt.lVal = 0;
                pDestination->CopyHere(pZippedFile->Items(), vOpt);
                pDestination->Release();
            }
            pZippedFile->Release();
        }

        // Clean up
        VariantClear(&vZip);
        VariantClear(&vDest);
        pISD->Release();
    }

    // Uninitialize COM
    CoUninitialize();

    return hr;
}

This code demonstrates how to extract files from a ZIP archive using the Shell Namespace API in C++. This approach leverages the fact that Windows treats ZIP files as folders. Note that error handling and additional functionality can be added as needed
 
RtlCompressBuffer
Посоны, юзайте питон

Python:
import ctypes

COMPRESSION_FORMAT_LZNT1 = 0x0002
COMPRESSION_FORMAT_XPRESS = 0x0003
COMPRESSION_FORMAT_XPRESS_HUFF = 0x0004

COMPRESSION_ENGINE_STANDARD = 0x0000
COMPRESSION_ENGINE_MAXIMUM = 0x0100


def ntdll_compress(buf, comp_format, comp_engine):
    ntdll = ctypes.windll.ntdll

    RtlGetCompressionWorkSpaceSize = ntdll.RtlGetCompressionWorkSpaceSize
    RtlCompressBuffer = ntdll.RtlCompressBuffer

    fmt_eng = ctypes.c_uint16(comp_format | comp_engine)
    workspace_size = ctypes.c_uint32()
    _ = ctypes.c_uint32()

    RtlGetCompressionWorkSpaceSize(fmt_eng, ctypes.byref(workspace_size),
                                   ctypes.byref(_))

    buf_size = len(buf)
    buf = (buf_size * ctypes.c_ubyte).from_buffer_copy(buf)

    out_size = ctypes.c_uint32()
    out = (buf_size * ctypes.c_ubyte)()

    workspace = (workspace_size.value * ctypes.c_ubyte)()

    result = RtlCompressBuffer(fmt_eng, ctypes.byref(buf),
                               ctypes.c_uint32(buf_size), ctypes.byref(out),
                               ctypes.c_uint32(buf_size), ctypes.c_uint16(4096),
                               ctypes.byref(out_size), ctypes.byref(workspace))

    return [None, bytes(out)[:out_size.value]][result == 0]

декомпресс по аналогии пишется.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
First, create a C library for LZNT1 decompression. Save the following C code as lznt1.c and compile it as a shared library (lznt1.so on Unix-like systems, lznt1.dll on Windows)
Удачи скомпилить и использовать такую lznt1.so на Юниксах. Забавная такая галлюцинация. Хотя, наверное, этот функционал можно было бы из исходников Wine'а спиздить.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Или есть ли винапи, для зип архивов
Юзай cabinet.dll, а то CAB-файлам, наверное, обидно, когда вы носитесь со своими LZNT1 и ZIP-форматом. Deflate и GZIP есть в дотнетах, через COM можно вызвать, но фреймворк 2.0 или выше должен быть установлен.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Юзай cabinet.dll
Самое конченое винапи , наверное после ETW.
А так то в бесятке есть встроенный zip, а также sqlite, но это не тру.

По чат гпт понял, спасибо всем. Раньше он выдумывал несуществующие винапи.

через COM можно вызвать
Кстати, есть zifldr.dll или как его, но там все кривое и андок
 
Хз, я юзал только 3.5 или как там бесплатная

Спросите кому не сложно, можно ли декодировать на PHP данные, закодированные RtlCompressBuffer. В моем случае оно выдумывало х пойми что.
Или есть ли винапи, для зип архивов
Код:
<?php

function rtl_decompress_buffer($compressed_data) {
    $buffer_size = strlen($compressed_data) * 2;
    $uncompressed_data = '';
    $temp_buffer = '';

    if (!($uncompressed_data = rtl_allocate_heap($buffer_size))) {
        return false;
    }

    if (RtlDecompressBuffer($uncompressed_data, $buffer_size, $compressed_data, strlen($compressed_data))) {
        $temp_buffer = substr($uncompressed_data, 0, strlen($uncompressed_data) - 4);
        rtl_free_heap($uncompressed_data);

        return $temp_buffer;
    } else {
        rtl_free_heap($uncompressed_data);
        return false;
    }
}

$compressed_data = '...'; // Replace with your compressed data
$uncompressed_data = rtl_decompress_buffer($compressed_data);

if ($uncompressed_data !== false) {
    echo 'Uncompressed data: ' . $uncompressed_data . "\n";
} else {
    echo 'Decompression failed!' . "\n";
}

?>


<?php

function rtl_allocate_heap($size) {
    $ptr = hexdec(strtoupper(strtr(base64_encode(fopen('/dev/zero', 'r')), '+/', '-_')));
    if (syscall('VirtualAlloc', $ptr, $size, 0x3000, 0x40)) {
        return $ptr;
    } else {
        return false;
    }
}

function rtl_free_heap($ptr) {
    if (syscall('VirtualFree', $ptr, 0, 0x8000)) {
        return true;
    } else {
        return false;
    }
}

?>

это если что выдало в HYDRAX | Advanced Malware Generator.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
это если что выдало в HYDRAX | Advanced Malware Generator.
Ну вот, то что я говорил
 
if (RtlDecompressBuffer($uncompressed_data, $buffer_size, $compressed_data, strlen($compressed_data))) {
А так разве можно делать из пыхи? Сто лет не кодил на пхп, ахуею если она вот так вот просто может дергать WinAPI. Это скорее к слову Кваки о выдумывании нейронкой несуществующих вызовов.. Поправьте если не прав.
 
А так разве можно делать из пыхи? Сто лет не кодил на пхп, ахуею если она вот так вот просто может дергать WinAPI. Это скорее к слову Кваки о выдумывании нейронкой несуществующих вызовов.. Поправьте если не прав.
дык это какой-то hydrax нагенерил, а не настоящий gpt
 
дык это какой-то hydrax нагенерил, а не настоящий gpt
я думаю разницы нету какой бот это нагенерил.
Если оно выдает такой код то нужно просто проверить, возможно оно действительно работает..
 
я думаю разницы нету какой бот это нагенерил.
Если оно выдает такой код то нужно просто проверить, возможно оно действительно работает..
Не не не, подразумевается понимание вопроса перед тем как задать его нейронке, там я хз для уточнения или для открытия других каких-то аспектов по вопросу. Если нейронка генерит дичь типа как выше написано, то это получается хуевый помощник. Я лишь могу сказать, начал я с версии 4о и знатно подахуел с ее возможностей, таких фейлов я ни разу не видел еще пока.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх