October 16

10.000$ на дейтинге в ТикТок за неделю через подмену изображений

99% из читателей этого поста видели хотя бы одно такое видео в ТикТоке, у 1% просто не установлен тт на телефоне.

Связка кстати до сих пор рабочая, хоть её пытаются модеры очень сбрить (существует теория, что некоторые модеры были в сговоре с трафферами). Но вы тут не для того, что бы читать о теориях, верно?

Предыстория залива

Мы с командой увидели то, что в ТТ творится полный п#здец – платформу тупо превращают в ПорнХаб. Нам это покоя не давало и мы любыми способами пытались узнать как это сделали?

Много часов было потрачено впустую листая англоязычные форумы в поисках ответа, который мы не нашли (это и очевидно, никто не будет сливать настолько профитную связку).

Но по итогу пришла идея, простая как две копейки: а что, если эти фото просто каким-то образом подменили? Загружали одни, а постились другие, или как-то подменяли в коде видео?

И это было очень близко к правде: использовался код, который подменял биты одного фото на другие биты.

Вот небольшая инструкция от ЧатаГПТ для скрытия изображений через скрипт:

Подготовка папок:Создайте четыре папки в директории, где расположен скрипт:FOTO1 — для изображений, в которые будет скрываться другое изображение.FOTO2 — для изображений, которые нужно скрыть.GOTOVO — сюда будут сохраняться изображения с встроенными скрытыми изображениями.PNG — сюда будут сохраняться извлечённые скрытые изображения.Загрузка изображений:Поместите в папку FOTO1 изображения, в которые вы хотите спрятать другие изображения.В папку FOTO2 положите изображение, которое хотите скрыть. Важно: изображения в папках должны быть одинакового размера, иначе программа выдаст ошибку.
**Запуск скрипта**:   - Запустите скрипт через Python. Для этого в терминале или командной строке выполните команду:     ```bash     python script.py     ```   **Результаты**:   - После выполнения скрипта:     - Изображения с спрятанным внутри изображением сохранятся в папку `GOTOVO`.     - Извлечённые скрытые изображения будут помещены в папку `PNG`.**Замечания**:   - Если в папках не найдено изображений или размеры не совпадают, скрипт выведет соответствующие предупреждения.   - Убедитесь, что форматы изображений — `.png`, `.jpg`, `.jpeg`, или `.bmp`, так как только эти форматы поддерживаются.
P.S. – мы не даём никаких гарантий на то, что конкретно этот скрипт со 100% вероятностью будет работать, ибо сейчас ТикТок очень с этим борется, но как и везде есть обходные пути и/или доработки, так что дерзайте.

В общем скрипт несложный и предельно понятный, от вас нужно будет только найти исходники фото, которые будете прятать и “из которых будете прятать”, скачать питон, та и лить трафф.

Примечания от редакции: Для того чтобы получить полный и подробный скрипт, используйте также Chat GPT. Пример того, что он может выдать по запросу: “Напиши скрипт для подмены изображений через систему подмены битов”.

Ответ ChatGPT на запрос по скрипту
from PIL import Image
import numpy as np

# Функция для скрытия данных в изображении с помощью LSB
def hide_data_in_image(image_path, output_path, data):
    # Открываем изображение
    image = Image.open(image_path)
    image = image.convert("RGB")  # Конвертируем изображение в RGB (3 канала)
    
    # Преобразуем изображение в массив NumPy
    pixels = np.array(image)
    
    # Преобразуем данные в двоичный вид
    data_bits = ''.join(format(ord(char), '08b') for char in data)
    
    # Получаем количество пикселей в изображении
    total_pixels = pixels.size // 3  # Каждый пиксель содержит 3 байта (R, G, B)
    
    # Проверка, поместятся ли данные в изображение
    if len(data_bits) > total_pixels * 3:
        raise ValueError("Слишком много данных для встраивания в данное изображение.")
    
    data_index = 0
    
    # Проходим по каждому пикселю
    for row in range(pixels.shape[0]):
        for col in range(pixels.shape[1]):
            for channel in range(3):  # R, G, B каналы
                if data_index < len(data_bits):
                    # Заменяем LSB канала на бит данных
                    pixels[row, col, channel] = int(
                        format(pixels[row, col, channel], '08b')[:-1] + data_bits[data_index], 2
                    )
                    data_index += 1
    
    # Преобразуем массив пикселей обратно в изображение
    new_image = Image.fromarray(pixels)
    
    # Сохраняем изображение с встроенными данными
    new_image.save(output_path)
    print(f"Данные успешно встроены в изображение и сохранены как {output_path}.")

# Функция для извлечения скрытых данных из изображения
def extract_data_from_image(image_path):
    # Открываем изображение
    image = Image.open(image_path)
    image = image.convert("RGB")
    
    # Преобразуем изображение в массив NumPy
    pixels = np.array(image)
    
    binary_data = ""
    
    # Проходим по каждому пикселю
    for row in range(pixels.shape[0]):
        for col in range(pixels.shape[1]):
            for channel in range(3):  # R, G, B каналы
                # Извлекаем LSB канала
                binary_data += format(pixels[row, col, channel], '08b')[-1]
    
    # Преобразуем двоичные данные в строку
    all_bytes = [binary_data[i:i+8] for i in range(0, len(binary_data), 8)]
    
    # Преобразуем биты обратно в символы
    data = ""
    for byte in all_bytes:
        try:
            data += chr(int(byte, 2))
        except ValueError:
            break  # Если есть некорректный символ, прекращаем
    
    return data

# Пример использования
if __name__ == "__main__":
    # Скрываем данные
    secret_message = "Секретное сообщение"
    hide_data_in_image("original_image.png", "encoded_image.png", secret_message)
    
    # Извлекаем данные
    extracted_message = extract_data_from_image("encoded_image.png")
    print(f"Извлеченное сообщение: {extracted_message}")