Загрузка...

Реверс инжиниринг за 5 минут

Тема в разделе Статьи создана пользователем webad11 16 ноя 2024. 3701 просмотр

  1. webad11
    webad11 Автор темы 16 ноя 2024 63 2 окт 2024
    Всем привет, сегодня поговорим о реверс-инжиниринге и о способах применения. (WEB)


    Что такое реверс-инжиниринг?
    Для начала расскажу вам что такое реверс-инжиниринг
    [IMG]

    Надеюсь с этим понятно, теперь уточним в каких случаях нам это выгодно

    1. Получить доступ к закрытым данным сайта
    2. Использовать функционал сайта в своих целях (пример автоматизация)
    3. Поиск уязвимостей сайта



    Практика

    Теперь перейдём к самому главному, пример я буду показывать на реальном сайте ИИ для генерации фото
    Для начала находим жертву, в идеале для такой работы нужен сайт не требующий авторизацию (мне нужен вариант где мои запросы не будут лимитироваться)

    Конечно же авторизация совсем не проблема, просто в ИИ где она есть - есть лимит на запросы, нам такое не подходит. Так-же стоит учитывать что есть сайты с лимитами на запросы с одного IP, в таком случае понадобятся ******.


    Я нашёл себе такой вариант - тык

    Заходим на страницу с нужной нам функцией, в моём случае - страница для генерации фото:
    [IMG]

    Вводим какой-то рандомный промпт, открываем панель разработчика в браузере (F12)
    Переходим во вкладку сеть, нажимаем на сайте кнопку "Generate"
    Сайт выполнит запрос генерации, останется лишь его найти среди лишнего мусора

    [IMG]

    В моём случае оказался такой простенький запрос на:
    ⁡https://api.deepai.org/api/text2img


    С form-data:
    ⁡text: rain

    image_generator_version: standard

    use_old_model: false

    turbo: true

    genius_preference: classic


    Переходим во вкладку "отклик", видим ответ от запроса:
    JS
    {
    "id": "b98f64a8-2115-411f-8a1e-ea51a1b6306f",
    "output_url": "https://api.deepai.org/job-view-file/b98f64a8-2115-411f-8a1e-ea51a1b6306f/outputs/output.jpg?art-image=true",
    "share_url": "https://images.deepai.org/art-image/eb7ef3a779a649439a2df45f32e9321a/rain-24b213.jpg"
    }
    Делаем вывод что данный запрос и отвечает за генерацию, отвечает сразу же ссылкой на изображение, очень удобно)
    Пытаемся повторить тот же запрос в node.js, облом, сервис требует API ключ

    Да, и вправду, в headers данного запроса отправляется Api_Key
    [IMG]
    Казалось бы, взяли ключ, вставили и все рады, но нет.
    При каждом запросе API отправляет разные ключи, в чём же дело

    Отправляемся во вкладку "Инициатор" этого запроса
    [IMG]

    Начинаем копаться в JS коде сайта, все инициаторы кликабельные, при нажатии можно увидеть функцию.
    Недолго покапавшись - находим замечательную функцию:

    [IMG]
    Как раз она и отвечает за генерацию ключа, кстати нам разработчик оставил пасхалку в его коде)
    [IMG]

    Переводим эту строку в код, подправляем под себя, в моём случае я решил на node.js
    JS
    const axios = require('axios');
    const FormData = require('form-data');
    // Generate a unique API key
    const generateApiKey = () => {
    let userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0';
    var myrandomstr = Math.round((Math.random() * 100000000000)) + "";
    var myhashfunction = function () {
    for (var a = [], b = 0; 64 > b;) {
    a[b] = 0 | 4294967296 * Math.sin(++b % Math.PI);
    }
    return function (c) {
    var d, e, f, g = [d = 1732584193, e = 4023233417, ~d, ~e], h = [], l = unescape(encodeURI(c)) + "\u0080", k = l.length;
    c = --k / 4 + 2 | 15;
    for (h[--c] = 8 * k; ~k;) {
    h[k >> 2] |= l.charCodeAt(k) << 8 * k--;
    }
    for (b = l = 0; b < c; b += 16) {
    for (k = g; 64 > l; k = [f = k[3], d + ((f = k[0] + [d & e | ~d & f, f & d | ~f & e, d ^ e ^ f, e ^ (d | ~f)][k = l >> 4] + a[l] + ~~h[b | [l, 5 * l + 1, 3 * l + 5, 7 * l][k] & 15]) << (k = [7, 12, 17, 22, 5, 9, 14, 20, 4, 11, 16, 23, 6, 10, 15, 21][4 * k + l++ % 4]) | f >>> -k), d, e]) {
    d = k[1] | 0;
    e = k[2];
    }
    for (l = 4; l;) {
    g[--l] += k[l];
    }
    }
    for (c = ""; 32 > l;) {
    c += (g[l >> 3] >> 4 * (1 ^ l++) & 15).toString(16);
    }
    return c.split("").reverse().join("");
    }
    }();
    return 'tryit-' + myrandomstr + '-' + myhashfunction(userAgent + myhashfunction(userAgent + myhashfunction(userAgent + myrandomstr + 'i_am_a_smelly_hacker_yes_i_am')));
    };
    // Function to generate image
    const generateImage = async (text, negativePrompt = '') => {
    let userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0';
    const apiKey = generateApiKey();
    const url = 'https://api.deepai.org/api/text2img';
    // Create a FormData instance
    const form = new FormData();
    form.append('text', text);
    if (negativePrompt) form.append('negative_prompt', negativePrompt);
    form.append('image_generator_version', 'hd');
    form.append('use_old_model', 'false'); // Ensure it's a string
    form.append('quality', 'true'); // Ensure it's a string
    try {
    const response = await axios.post(url, form, {
    headers: {
    ...form.getHeaders(), // Important: include the form headers
    'api-key': apiKey,
    'Accept': '*/*',
    'Accept-Encoding': 'gzip, deflate, br, zstd',
    'Accept-Language': 'ru,en;q=0.9,en-GB;q=0.8,en-US;q=0.7',
    'User-Agent': userAgent,
    }
    });
    console.log('Response data:', response.data);
    // Return only the share_url
    return response.data.share_url;
    } catch (error) {
    console.error('Error:', error.response ? error.response.data : error.message);
    throw error; // Rethrow the error for further handling
    }
    };
    // Export the module
    module.exports = { generateImage };
    Да, да, я просто взял их же код, подправил USER-AGENT, и вот у нас идеальная функция.
    Таким образом мы буквально за 5 минут получили доступ к их API


    Конечно же статья создана в учебных целях, не стоит злоупотреблять этим, но для проверки своего кода - очень хорошо подойдёт.
    В данной теме я старался без воды, надеюсь всем было понятно.

    Удачи, хакеры :pepeHacker:
     
    Этот материал оказался полезным?
    Вы можете отблагодарить автора темы путем перевода средств на баланс
    Отблагодарить автора
  2. webad11
    webad11 Автор темы 25 фев 2025 63 2 окт 2024
    Пару месяцев назад все "специалисты" гордо писали - слишком лёгкая статья, когда я выпустил реверсинг ЮMoney - специалисты пропали.
     
  3. NEscamer12
    NEscamer12 16 ноя 2024 14 11 июл 2022
    Ну ваще норм статья хотя мне она не нужна в общем молодец что написал кому то рил пригодится
     
    16 ноя 2024 Изменено
    1. webad11 Автор темы
      NEscamer12, thanks, пишу для новичков)
  4. CodeBase
    CodeBase 16 ноя 2024 10 30 сен 2023
    крассавчик, можно больше примеров ?) там может какую то ллм всем форумом пользовались бы )
     
    1. Посмотреть предыдущие комментарии (11)
    2. webad11 Автор темы
      CodeBase, мб ближайшие дни напишу статью с Claude 3.5 и остальными.
    3. wyrssees
      CodeBase, ну зарегай акк claude на номер сша, в чем проблема
  5. 1xday
    это все конечно хорошо, а теперь делай разбор на реверсинг полноценного обфуснутого софта :pigsmile:
     
    1. Посмотреть предыдущие комментарии (1)
    2. Doklsi
      1xday, реверс инженеринг на твое пузо
  6. N1C1
    N1C1 16 ноя 2024 3 16 окт 2021
    я думал про программы будут
     
    1. webad11 Автор темы
      N1C1, если будут желающие люди, тоже сделаем. Там всё не так однозначно как тут, большинство не захочет углубляться. Да и эта статья не очень то пользуется популярностью.
  7. ПИВО47
    ПИВО47 16 ноя 2024 BEBRO 696 9 дек 2018
    продолжай, тема интересная
     
    1. webad11 Автор темы
      ПИВО47, thanks, будем постепенно подниматься к сложным темам, можем зареверсить форму ЮMoney для пожертвований по карте, думаю будет интересно.
  8. webad11
    webad11 Автор темы 16 ноя 2024 63 2 окт 2024
    Какие направления реверс-инжиниринга делать дальше?
     
    1. Посмотреть предыдущие комментарии (2)
    2. trustmeurks
      webad11, у меня самого уровень андроид реверса на уровне "повседневный", "посредственный", но все же попробуй.
      посредственный имеется в виду, что я использую андроид софт, типа апк клонера и канарейки для реверса)
      17 ноя 2024 Изменено
    3. Фрилансер
  9. STREIK_inactive2972971
    :+rep: Хоть пока и не надо, но сам факт наличие данных знаний - имба. Респект за статью
     
  10. neskymer
    neskymer 9 дек 2024 Жду пока изи лайкер купит аву 182 21 янв 2022
    авторка не зачто :-rep:
     
    1. neskymer
      neskymer, на форуме есть отдельный раздел где куча инфы
    2. webad11 Автор темы
      neskymer, p.s. чел такой обиженный что на каждую мою статью кидает жалобу и гордо радуется.
  11. CARLOSLehder
    за это дают авторку?
     
    1. neskymer
    2. CARLOSLehder
      neskymer, та я тоже так подумал, неужели один скрин JS функции стоит авторки
  12. 5000
    5000 9 дек 2024 5000 8390 29 дек 2019
    Получить авторку и бан профиля за нее это сильно :finger_up:
     
    1. Посмотреть предыдущие комментарии (5)
    2. 0duvan41k
      5000, но админам похуй, в этом самый прикол
      10 дек 2024 Изменено
  13. Ramstein
    Ramstein 10 дек 2024 0 10 дек 2024
    просмотр открытого javascript кода теперь называется реверс-инжиниринг ? :cool:
     
    1. ДОЖДЕВОЙ
      Ramstein, :clown: . А то что любая программа это также открытый ассемблер код тебя видимо не смущает
  14. PIXFill
    PIXFill 10 дек 2024 9 23 июл 2018
  15. Starknet
    Starknet 10 дек 2024 ***** 1340 9 сен 2022
    пару месяцев назад реверсил debank там конечно по сложнее было wasm файл в js был (декомпилировал его в понятный текст - но он очевидно все еще был нереально большой человек не разобрался-бы), купил подписку на chatgpt (неслабо так сам попотел, GPT смог дать рабочий код после кучу попыток прочитав длинный файл) без тоны моих сил и подписки не смог бы реверснуть (ну а у тебя да самый легкий пример - искать не нужно + нет wasm, просто скинуть код на скрине GPT и сказать "перепиши на норм js" и всё)
     
    10 дек 2024 Изменено
  16. bitchLoveSosa
    bitchLoveSosa 10 дек 2024 Заблокирован(а) 217 12 апр 2022
    так ты просто у чата гпт спросил, вдруг он не верно все дал
     
  17. triple6six
    triple6six 10 дек 2024 40 19 дек 2019
    за это дали авторку?
     
  18. Aisan
    Aisan 10 дек 2024 Ничего не продаю, не создаю. Не пишите мне 15 075 26 авг 2020
    Максимально базовая статья, такими темпами и статьям из психологии начнут авторки давать :smile_nono:
     
    1. Посмотреть предыдущие комментарии (4)
    2. анарчи
      Aisan, была в разделе «статьи», но там не только авторки постятся
    3. Aisan
    4. анарчи
      Aisan, я еще раз повторяю:
      "была в разделе «статьи», но там не только авторки постятся"

      когда уже это ошибочное мнение пропадет у людей
      12 дек 2024 Изменено
  19. webad11
    webad11 Автор темы 20 янв 2025 63 2 окт 2024
    Отошёл с бана, как понял многим показалась слишком лёгкая тема. Есть в предложениях сделать реверс шлюза пожертвований ЮMoney, как вам идея? :pepe_wtf:
     
  20. 0duvan41k
    0duvan41k 25 фев 2025 Гойда 256 2 июн 2023
    :+rep: , хорошая статья, да базовая , но без базы никуда, тем кто не в теме будет полезна
     
    1. webad11 Автор темы
      0duvan41k, спасибо, хоть кто-то это понимает, всем нужно начинать с чего-то, хакерами не рождаются.
Загрузка...
Top