Исходник Junk_code - добавление рандомных байтов в функцию

Полезная ли тема?

  • Да

  • Нет

  • Незнаю


Результаты будут видны только после голосования.
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
Давным давно в тридесятом государстве, была __asm функция junk_code. Но с переходом на х64 про нее все забыли и забили, а может про нее многие и не знали, пешком под стол ходили в то время.

junk_code - добавляет в функцию рандомные байты не влияющие на ее работоспособность, как-бы.

Используя разные версии VS те или иные аналоги junk_code менялись. Одни переставали включаться в компоновку, другие в одной функции включались, в другой не включались.

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

Данный код был внедрен в драйвер, динамическую библиотеку и приложение.
Тесты были произведены под действием античита MRAC. Но возможно код будет работать и под другие античиты, которые чекают сигнатуру функций.
На данном примере рассмотрим простую, стандартную функцию без junk_code и с junk_code

Вот пример стандартной функции без использования junk_code
фантастика 1.jpg

А вот тут уже с использованием junk_code
фантастика 2.jpg

Как мы можем видеть, сигнатура функции сильно поменялась.

Аргументы макрос может принимать любые, в данном случае это LINE - которая возвращает номер строки в которой она прописана. Но можно заменить на свои значения.

Сам макрос и его функции
C++:
constexpr auto _s1 = __TIME__[6] - 48;
constexpr auto _s2 = __TIME__[7] - 48;
constexpr auto _h1 = __TIME__[0] - 48;
constexpr auto _h2 = __TIME__[1] - 48;
constexpr auto _m1 = __TIME__[3] - 48;
constexpr auto _m2 = __TIME__[4] - 48;
constexpr auto __tvtodw(__int64 high, __int64 low) { return high * 10 + low; }
constexpr auto _HOURS = __tvtodw(_h1, _h2) + 1;
constexpr auto _MINUTES = __tvtodw(_m1, _m2);
constexpr auto _SECONDS = __tvtodw(_s1, _s2);
constexpr auto _TIMEVAL = (_SECONDS + (_MINUTES * 60) + (_HOURS * 60 * 60));

inline auto fantastic(volatile __int64 _param_value)
{
    volatile auto x = _param_value ^ _SECONDS;
    volatile auto part1 = _SECONDS;
    volatile auto part2 = (_MINUTES ^ _m2) * _s2;
    volatile auto part3 = (_s1 * _MINUTES / _HOURS);
    volatile auto partEnd1 = (part1 + part2 + 1);
    volatile auto partEnd2 = x - part3;
    volatile auto partEnd = partEnd2 / partEnd1;

    return partEnd;
}

#define fantastic_arg(x) (((x * _SECONDS) + (x * (_MINUTES ^ _m2) * _s2) + (_s1 * _MINUTES / _HOURS) + x) ^ _SECONDS)
#define xor_fantastic(x) (fantastic(fantastic_arg(x)))
#define junk_code(x) (xor_fantastic(x+_TIMEVAL))
Поменять алгоритм генерации рандомного значения можно в данной строке "fantastic_arg"

Все остальные constexpr служат для генерации тех или иных параметров при компиляции проекта.

Тегну тру кодеров данного раздела, что-бы услышать их величайшее мнение.
Amelechkin01
PasteSquad
desccc
Yesgoter
Tramadolid

Я про бонус забыл.
Многие использую так называемые "спуфы вызовов" spoofcall
spoofasm.asm:
PUBLIC _spoofer_stub  
.code
_spoofer_stub PROC                                                
    mov r10, r10
    xchg r11, r11
    pop r11
    xchg rdi, rdi
    nop
    add rsp, 8
    xchg rax, rax
    jmp next
    nop
    xchg r10, r10
    nop

    next:
    xchg rax, rax
    mov rax, [rsp + 24]
    nop
    nop
    mov r10, [rax]
    xchg r11, r11
    mov [rsp], r10
    nop
    jmp next2
    mov r10, [rax + 8]
    nop
 
    next2:
    mov r10, [rax + 8]
    nop
    mov [rax + 8], r11
    xchg r15, r15
    mov [rax + 16], rdi
    xchg rdi, rdi
    lea rdi, fixup
    nop
    xchg rax, rax
    mov [rax], rdi
    jmp next3
    mov [rax + 16], rdi
    mov [rax + 8], r11
    nop

    next3:
    mov rdi, rax
    xchg rdi, rdi
    mov rdi, rdi
    xchg rdi, rdi
    mov r10, r10
    jmp r10
 
    fixup:
    xchg rdi, rdi
    sub rsp, 16
    xchg rcx, rcx
    mov rcx, rdi
    nop
    mov rdi, [rcx + 16]
    mov rcx, rcx
    jmp QWORD PTR [rcx + 8]
    _spoofer_stub ENDP
END
У всех одна и таже сигнура кода.
спуфф.jpg
Вот в этом и причина ваших банов. Меняйте ее.

Обновлено 12.04.2024
C++:
inline auto fantastic(volatile __int64 _param_value)
{
    xor_int(123456);
    volatile auto x = _param_value ^ _SECONDS;
    volatile auto part1 = _SECONDS;
    volatile auto part2 = (_MINUTES ^ _m2) * _s2;
    volatile auto part3 = (_s1 * _MINUTES / _HOURS);
    volatile auto partEnd1 = (part1 + part2 + 1);
    volatile auto partEnd2 = x - part3;
    volatile auto partEnd = partEnd2 / partEnd1;
    return partEnd;
}
C++:
static int mini_ttoi(const char* str)
{
    int ret = xor_value_1(0);
    while (*str >= '0' && *str <= '9')
    {
        ret *= xor_value_1(10);
        ret += *str - '0';
        str++;
    }
    return ret;
}

#define xor_int(v) [&](){ return mini_ttoi(xor_s(#v)); }()
 
Последнее редактирование:
Не люблю ЧСВ
Забаненный
Статус
Оффлайн
Регистрация
11 Июл 2022
Сообщения
335
Реакции[?]
21
Поинты[?]
20K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Бля мужик Красава большая проведённая работа.:seemsgood::pogchamp:
Я обязательно это использую в своем сурсе.
 
Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2023
Сообщения
267
Реакции[?]
16
Поинты[?]
17K
Как мы можем видеть, сигнатура функции сильно поменялась.
добавится мусор в твоих местах, куски кода что могут быть задетекчены не изменятся.

к тому же тебе прийдется отрубать оптимизацию ибо этот код может быть срезан при компиляции, чтобы не срезало надо чтобы код на что-то влиял хоть на статическую переменную
Вот в этом и причина ваших банов. Меняйте ее.
твой спуф адреса возврата бесполезный мусор.
Я обязательно это использую в своем сурсе.
типикал пастер
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
Давным давно в тридесятом государстве, была __asm функция junk_code. Но с переходом на х64 про нее все забыли и забили, а может про нее многие и не знали, пешком под стол ходили в то время.

junk_code - добавляет в функцию рандомные байты не влияющие на ее работоспособность, как-бы.

Используя разные версии VS те или иные аналоги junk_code менялись. Одни переставали включаться в компоновку, другие в одной функции включались, в другой не включались.

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

Данный код был внедрен в драйвер, динамическую библиотеку и приложение.
Тесты были произведены под действием античита MRAC. Но возможно код будет работать и под другие античиты, которые чекают сигнатуру функций.
На данном примере рассмотрим простую, стандартную функцию без junk_code и с junk_code

Вот пример стандартной функции без использования junk_code
Посмотреть вложение 271652

А вот тут уже с использованием junk_code
Посмотреть вложение 271653

Как мы можем видеть, сигнатура функции сильно поменялась.

Аргументы макрос может принимать любые, в данном случае это LINE - которая возвращает номер строки в которой она прописана. Но можно заменить на свои значения.

Сам макрос и его функции
C++:
constexpr auto _s1 = __TIME__[6] - 48;
constexpr auto _s2 = __TIME__[7] - 48;
constexpr auto _h1 = __TIME__[0] - 48;
constexpr auto _h2 = __TIME__[1] - 48;
constexpr auto _m1 = __TIME__[3] - 48;
constexpr auto _m2 = __TIME__[4] - 48;
constexpr auto __tvtodw(__int64 high, __int64 low) { return high * 10 + low; }
constexpr auto _HOURS = __tvtodw(_h1, _h2) + 1;
constexpr auto _MINUTES = __tvtodw(_m1, _m2);
constexpr auto _SECONDS = __tvtodw(_s1, _s2);
constexpr auto _TIMEVAL = (_SECONDS + (_MINUTES * 60) + (_HOURS * 60 * 60));

inline auto fantastic(volatile __int64 _param_value)
{
    volatile auto x = _param_value ^ _SECONDS;
    volatile auto part1 = _SECONDS;
    volatile auto part2 = (_MINUTES ^ _m2) * _s2;
    volatile auto part3 = (_s1 * _MINUTES / _HOURS);
    volatile auto partEnd1 = (part1 + part2 + 1);
    volatile auto partEnd2 = x - part3;
    volatile auto partEnd = partEnd2 / partEnd1;

    return partEnd;
}

#define fantastic_arg(x) (((x * _SECONDS) + (x * (_MINUTES ^ _m2) * _s2) + (_s1 * _MINUTES / _HOURS) + x) ^ _SECONDS)
#define xor_fantastic(x) (fantastic(fantastic_arg(x)))
#define junk_code(x) (xor_fantastic(x+_TIMEVAL))
Поменять алгоритм генерации рандомного значения можно в данной строке "fantastic_arg"

Все остальные constexpr служат для генерации тех или иных параметров при компиляции проекта.

Тегну тру кодеров данного раздела, что-бы услышать их величайшее мнение.
Amelechkin01
PasteSquad
desccc
Yesgoter
Tramadolid

Я про бонус забыл.
Многие использую так называемые "спуфы вызовов" spoofcall
spoofasm.asm:
PUBLIC _spoofer_stub  
.code
_spoofer_stub PROC                                                
    mov r10, r10
    xchg r11, r11
    pop r11
    xchg rdi, rdi
    nop
    add rsp, 8
    xchg rax, rax
    jmp next
    nop
    xchg r10, r10
    nop

    next:
    xchg rax, rax
    mov rax, [rsp + 24]
    nop
    nop
    mov r10, [rax]
    xchg r11, r11
    mov [rsp], r10
    nop
    jmp next2
    mov r10, [rax + 8]
    nop
 
    next2:
    mov r10, [rax + 8]
    nop
    mov [rax + 8], r11
    xchg r15, r15
    mov [rax + 16], rdi
    xchg rdi, rdi
    lea rdi, fixup
    nop
    xchg rax, rax
    mov [rax], rdi
    jmp next3
    mov [rax + 16], rdi
    mov [rax + 8], r11
    nop

    next3:
    mov rdi, rax
    xchg rdi, rdi
    mov rdi, rdi
    xchg rdi, rdi
    mov r10, r10
    jmp r10
 
    fixup:
    xchg rdi, rdi
    sub rsp, 16
    xchg rcx, rcx
    mov rcx, rdi
    nop
    mov rdi, [rcx + 16]
    mov rcx, rcx
    jmp QWORD PTR [rcx + 8]
    _spoofer_stub ENDP
END
У всех одна и таже сигнура кода.
Посмотреть вложение 271654
Вот в этом и причина ваших банов. Меняйте ее.
Имба , безусловно. :stupid:
 
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,550
Реакции[?]
518
Поинты[?]
188K
Давным давно в тридесятом государстве, была __asm функция junk_code. Но с переходом на х64 про нее все забыли и забили, а может про нее многие и не знали, пешком под стол ходили в то время.

junk_code - добавляет в функцию рандомные байты не влияющие на ее работоспособность, как-бы.

Используя разные версии VS те или иные аналоги junk_code менялись. Одни переставали включаться в компоновку, другие в одной функции включались, в другой не включались.

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

Данный код был внедрен в драйвер, динамическую библиотеку и приложение.
Тесты были произведены под действием античита MRAC. Но возможно код будет работать и под другие античиты, которые чекают сигнатуру функций.
На данном примере рассмотрим простую, стандартную функцию без junk_code и с junk_code

Вот пример стандартной функции без использования junk_code
Посмотреть вложение 271652

А вот тут уже с использованием junk_code
Посмотреть вложение 271653

Как мы можем видеть, сигнатура функции сильно поменялась.

Аргументы макрос может принимать любые, в данном случае это LINE - которая возвращает номер строки в которой она прописана. Но можно заменить на свои значения.

Сам макрос и его функции
C++:
constexpr auto _s1 = __TIME__[6] - 48;
constexpr auto _s2 = __TIME__[7] - 48;
constexpr auto _h1 = __TIME__[0] - 48;
constexpr auto _h2 = __TIME__[1] - 48;
constexpr auto _m1 = __TIME__[3] - 48;
constexpr auto _m2 = __TIME__[4] - 48;
constexpr auto __tvtodw(__int64 high, __int64 low) { return high * 10 + low; }
constexpr auto _HOURS = __tvtodw(_h1, _h2) + 1;
constexpr auto _MINUTES = __tvtodw(_m1, _m2);
constexpr auto _SECONDS = __tvtodw(_s1, _s2);
constexpr auto _TIMEVAL = (_SECONDS + (_MINUTES * 60) + (_HOURS * 60 * 60));

inline auto fantastic(volatile __int64 _param_value)
{
    volatile auto x = _param_value ^ _SECONDS;
    volatile auto part1 = _SECONDS;
    volatile auto part2 = (_MINUTES ^ _m2) * _s2;
    volatile auto part3 = (_s1 * _MINUTES / _HOURS);
    volatile auto partEnd1 = (part1 + part2 + 1);
    volatile auto partEnd2 = x - part3;
    volatile auto partEnd = partEnd2 / partEnd1;

    return partEnd;
}

#define fantastic_arg(x) (((x * _SECONDS) + (x * (_MINUTES ^ _m2) * _s2) + (_s1 * _MINUTES / _HOURS) + x) ^ _SECONDS)
#define xor_fantastic(x) (fantastic(fantastic_arg(x)))
#define junk_code(x) (xor_fantastic(x+_TIMEVAL))
Поменять алгоритм генерации рандомного значения можно в данной строке "fantastic_arg"

Все остальные constexpr служат для генерации тех или иных параметров при компиляции проекта.

Тегну тру кодеров данного раздела, что-бы услышать их величайшее мнение.
Amelechkin01
PasteSquad
desccc
Yesgoter
Tramadolid

Я про бонус забыл.
Многие использую так называемые "спуфы вызовов" spoofcall
spoofasm.asm:
PUBLIC _spoofer_stub   
.code
_spoofer_stub PROC                                                 
    mov r10, r10
    xchg r11, r11
    pop r11
    xchg rdi, rdi
    nop
    add rsp, 8
    xchg rax, rax
    jmp next
    nop
    xchg r10, r10
    nop

    next:
    xchg rax, rax
    mov rax, [rsp + 24]
    nop
    nop
    mov r10, [rax]
    xchg r11, r11
    mov [rsp], r10
    nop
    jmp next2
    mov r10, [rax + 8]
    nop
  
    next2:
    mov r10, [rax + 8]
    nop
    mov [rax + 8], r11
    xchg r15, r15
    mov [rax + 16], rdi
    xchg rdi, rdi
    lea rdi, fixup
    nop
    xchg rax, rax
    mov [rax], rdi
    jmp next3
    mov [rax + 16], rdi
    mov [rax + 8], r11
    nop

    next3:
    mov rdi, rax
    xchg rdi, rdi
    mov rdi, rdi
    xchg rdi, rdi
    mov r10, r10
    jmp r10
  
    fixup:
    xchg rdi, rdi
    sub rsp, 16
    xchg rcx, rcx
    mov rcx, rdi
    nop
    mov rdi, [rcx + 16]
    mov rcx, rcx
    jmp QWORD PTR [rcx + 8]
    _spoofer_stub ENDP
END
У всех одна и таже сигнура кода.
Посмотреть вложение 271654
Вот в этом и причина ваших банов. Меняйте ее.
А смысл? Данный код просто добавит мусорные инструкции, но что с этого? Твои детект функции не станут уд, адекватный реверсер легко может отличить джанк код от настоящего кода программного обеспечения. Вывод: данная тема бесполезна. Наделал ты мусорных инструкций и что? Ничего не изменится.

(Только добавится 30кб к весу билда)))
 
Не люблю ЧСВ
Забаненный
Статус
Оффлайн
Регистрация
11 Июл 2022
Сообщения
335
Реакции[?]
21
Поинты[?]
20K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пользователь
Статус
Оффлайн
Регистрация
5 Июл 2022
Сообщения
1,000
Реакции[?]
86
Поинты[?]
23K
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
добавится мусор в твоих местах, куски кода что могут быть задетекчены не изменятся.
Я бы не был так уверенный.

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

твой спуф адреса возврата бесполезный мусор.
Это не мой спуфф. Который используется во многих читах.

А смысл? Данный код просто добавит мусорные инструкции, но что с этого? Твои детект функции не станут уд, адекватный реверсер легко может отличить джанк код от настоящего кода программного обеспечения. Вывод: данная тема бесполезна. Наделал ты мусорных инструкций и что? Ничего не изменится.
(Только добавится 30кб к весу билда)))
Тут фишка в другом, а не в реверсе.
От детекта это помогает очень хорошо. Нужно знать куда и где его применять.

Чего и стоило ожидать, кучка недо кодеров, которая тут собралась, ничего толком не знает как работает античит в данной игре.
 
ппоршень
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2020
Сообщения
294
Реакции[?]
46
Поинты[?]
32K
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,550
Реакции[?]
518
Поинты[?]
188K
Тут фишка в другом, а не в реверсе.
От детекта это помогает очень хорошо. Нужно знать куда и где его применять.
Так как это поможет от детекта то? Максимум что это сделает, так это сломает сигскан на ту, или иную функцию
Это может помочь таким как тебе, пастерам, которые будут использовать джанк код чтобы использовать детект функции, вместо того, чтобы сделать упор на уменьшение размера пейлода и создания своей, уникальной функции, которая будет эффективнее той, старой.
Давным давно в тридесятом государстве, была __asm функция junk_code. Но с переходом на х64 про нее все забыли и забили, а может про нее многие и не знали, пешком под стол ходили в то время.

junk_code - добавляет в функцию рандомные байты не влияющие на ее работоспособность, как-бы.

Используя разные версии VS те или иные аналоги junk_code менялись. Одни переставали включаться в компоновку, другие в одной функции включались, в другой не включались.

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

Данный код был внедрен в драйвер, динамическую библиотеку и приложение.
Тесты были произведены под действием античита MRAC. Но возможно код будет работать и под другие античиты, которые чекают сигнатуру функций.
На данном примере рассмотрим простую, стандартную функцию без junk_code и с junk_code

Вот пример стандартной функции без использования junk_code
Посмотреть вложение 271652

А вот тут уже с использованием junk_code
Посмотреть вложение 271653

Как мы можем видеть, сигнатура функции сильно поменялась.

Аргументы макрос может принимать любые, в данном случае это LINE - которая возвращает номер строки в которой она прописана. Но можно заменить на свои значения.

Сам макрос и его функции
C++:
constexpr auto _s1 = __TIME__[6] - 48;
constexpr auto _s2 = __TIME__[7] - 48;
constexpr auto _h1 = __TIME__[0] - 48;
constexpr auto _h2 = __TIME__[1] - 48;
constexpr auto _m1 = __TIME__[3] - 48;
constexpr auto _m2 = __TIME__[4] - 48;
constexpr auto __tvtodw(__int64 high, __int64 low) { return high * 10 + low; }
constexpr auto _HOURS = __tvtodw(_h1, _h2) + 1;
constexpr auto _MINUTES = __tvtodw(_m1, _m2);
constexpr auto _SECONDS = __tvtodw(_s1, _s2);
constexpr auto _TIMEVAL = (_SECONDS + (_MINUTES * 60) + (_HOURS * 60 * 60));

inline auto fantastic(volatile __int64 _param_value)
{
    volatile auto x = _param_value ^ _SECONDS;
    volatile auto part1 = _SECONDS;
    volatile auto part2 = (_MINUTES ^ _m2) * _s2;
    volatile auto part3 = (_s1 * _MINUTES / _HOURS);
    volatile auto partEnd1 = (part1 + part2 + 1);
    volatile auto partEnd2 = x - part3;
    volatile auto partEnd = partEnd2 / partEnd1;

    return partEnd;
}

#define fantastic_arg(x) (((x * _SECONDS) + (x * (_MINUTES ^ _m2) * _s2) + (_s1 * _MINUTES / _HOURS) + x) ^ _SECONDS)
#define xor_fantastic(x) (fantastic(fantastic_arg(x)))
#define junk_code(x) (xor_fantastic(x+_TIMEVAL))
Поменять алгоритм генерации рандомного значения можно в данной строке "fantastic_arg"

Все остальные constexpr служат для генерации тех или иных параметров при компиляции проекта.

Тегну тру кодеров данного раздела, что-бы услышать их величайшее мнение.
Amelechkin01
PasteSquad
desccc
Yesgoter
Tramadolid

Я про бонус забыл.
Многие использую так называемые "спуфы вызовов" spoofcall
spoofasm.asm:
PUBLIC _spoofer_stub  
.code
_spoofer_stub PROC                                                
    mov r10, r10
    xchg r11, r11
    pop r11
    xchg rdi, rdi
    nop
    add rsp, 8
    xchg rax, rax
    jmp next
    nop
    xchg r10, r10
    nop

    next:
    xchg rax, rax
    mov rax, [rsp + 24]
    nop
    nop
    mov r10, [rax]
    xchg r11, r11
    mov [rsp], r10
    nop
    jmp next2
    mov r10, [rax + 8]
    nop
 
    next2:
    mov r10, [rax + 8]
    nop
    mov [rax + 8], r11
    xchg r15, r15
    mov [rax + 16], rdi
    xchg rdi, rdi
    lea rdi, fixup
    nop
    xchg rax, rax
    mov [rax], rdi
    jmp next3
    mov [rax + 16], rdi
    mov [rax + 8], r11
    nop

    next3:
    mov rdi, rax
    xchg rdi, rdi
    mov rdi, rdi
    xchg rdi, rdi
    mov r10, r10
    jmp r10
 
    fixup:
    xchg rdi, rdi
    sub rsp, 16
    xchg rcx, rcx
    mov rcx, rdi
    nop
    mov rdi, [rcx + 16]
    mov rcx, rcx
    jmp QWORD PTR [rcx + 8]
    _spoofer_stub ENDP
END
У всех одна и таже сигнура кода.
Посмотреть вложение 271654
Вот в этом и причина ваших банов. Меняйте ее.
1709305521915.pngХотя, сюда по твоим темам и сообщениям в теме, я действительно могу сказать, что мы всего лишь то - шайка недокодеров, которые не имеют понятия о анти читах, в целом играх и тому подобным вещам.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
Так как это поможет от детекта то? Максимум что это сделает, так это сломает сигскан на ту, или иную функцию
Это может помочь таким как тебе, пастерам, которые будут использовать джанк код чтобы использовать детект функции, вместо того, чтобы сделать упор на уменьшение размера пейлода и создания своей, уникальной функции, которая будет эффективнее той, старой.

Посмотреть вложение 271683Хотя, сюда по твоим темам и сообщениям в теме, я действительно могу сказать, что мы всего лишь то - шайка недокодеров, которые не имеют понятия о анти читах, в целом играх и тому подобным вещам.
Все с вами понятно.
Идите дальше.
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
Хоть и задача ОПа выполнена, а именно добавить немного мусорного кода и изменить сигнатуру изначальной функции, но есть парочка нюансов. Во-первых, код ниже будет всегда использоваться и никак не меняется, хоть юзай ты его в каждой функции, так что составить сигнатуру на такого куска "джанк кода" будет не столь сложно ( а при желании и всё nop'нуть потом, дабы не мозолило глаза ). Во-вторых, этот код может вполне убавить немножко вашу оптимизацию, так как будет происходить множество бесполезных инструкций mov, xor, and, sub и т.п. Лучше добавить условие, чтобы в твой код мы никогда не попадали ( а ещё лучше побольше условий, чтобы путаница была ) и тогда станет намного лучше. А пока тянет на троечку, на мой субъективный и совершенно неподкупный взгляд.
code:
inline auto fantastic(volatile __int64 _param_value)
{
    volatile auto x = _param_value ^ _SECONDS;
    volatile auto part1 = _SECONDS;
    volatile auto part2 = (_MINUTES ^ _m2) * _s2;
    volatile auto part3 = (_s1 * _MINUTES / _HOURS);
    volatile auto partEnd1 = (part1 + part2 + 1);
    volatile auto partEnd2 = x - part3;
    volatile auto partEnd = partEnd2 / partEnd1;

    return partEnd;
}
 
Начинающий
Статус
Оффлайн
Регистрация
22 Дек 2023
Сообщения
267
Реакции[?]
16
Поинты[?]
17K
кстати, куски кода что задетекчены вы серавно не сможете узнать, а напихивание мусора везде и вся не поможет
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
кстати, куски кода что задетекчены вы серавно не сможете узнать, а напихивание мусора везде и вся не поможет
Скажем так. Надо понимать что может быть в детекте.
Хоть и задача ОПа выполнена, а именно добавить немного мусорного кода и изменить сигнатуру изначальной функции, но есть парочка нюансов. Во-первых, код ниже будет всегда использоваться и никак не меняется, хоть юзай ты его в каждой функции, так что составить сигнатуру на такого куска "джанк кода" будет не столь сложно ( а при желании и всё nop'нуть потом, дабы не мозолило глаза ). Во-вторых, этот код может вполне убавить немножко вашу оптимизацию, так как будет происходить множество бесполезных инструкций mov, xor, and, sub и т.п. Лучше добавить условие, чтобы в твой код мы никогда не попадали ( а ещё лучше побольше условий, чтобы путаница была ) и тогда станет намного лучше. А пока тянет на троечку, на мой субъективный и совершенно неподкупный взгляд.
code:
inline auto fantastic(volatile __int64 _param_value)
{
    volatile auto x = _param_value ^ _SECONDS;
    volatile auto part1 = _SECONDS;
    volatile auto part2 = (_MINUTES ^ _m2) * _s2;
    volatile auto part3 = (_s1 * _MINUTES / _HOURS);
    volatile auto partEnd1 = (part1 + part2 + 1);
    volatile auto partEnd2 = x - part3;
    volatile auto partEnd = partEnd2 / partEnd1;

    return partEnd;
}
Тут я согласен.
Всегда что-то останется в исходном виде.
Хоть и задача ОПа выполнена, а именно добавить немного мусорного кода и изменить сигнатуру изначальной функции, но есть парочка нюансов. Во-первых, код ниже будет всегда использоваться и никак не меняется, хоть юзай ты его в каждой функции, так что составить сигнатуру на такого куска "джанк кода" будет не столь сложно ( а при желании и всё nop'нуть потом, дабы не мозолило глаза ). Во-вторых, этот код может вполне убавить немножко вашу оптимизацию, так как будет происходить множество бесполезных инструкций mov, xor, and, sub и т.п. Лучше добавить условие, чтобы в твой код мы никогда не попадали ( а ещё лучше побольше условий, чтобы путаница была ) и тогда станет намного лучше. А пока тянет на троечку, на мой субъективный и совершенно неподкупный взгляд.
code:
inline auto fantastic(volatile __int64 _param_value)
{
    volatile auto x = _param_value ^ _SECONDS;
    volatile auto part1 = _SECONDS;
    volatile auto part2 = (_MINUTES ^ _m2) * _s2;
    volatile auto part3 = (_s1 * _MINUTES / _HOURS);
    volatile auto partEnd1 = (part1 + part2 + 1);
    volatile auto partEnd2 = x - part3;
    volatile auto partEnd = partEnd2 / partEnd1;

    return partEnd;
}
C++:
int a1_junk = 0;
void Func()
{
    if(a1_junk)junk_code(__LINE__);
}
1.jpg
Так не вариант. Что можете предложить?
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
160
Реакции[?]
26
Поинты[?]
26K
ты и не поймешь, может быть что угодно хоть путь до твоего pdb
Это надо каким быть оленем, что-бы не удалять следы Debuga.
Научись понимать и читать свой код для понятия, что может быть в нем в детекте.
 
Сверху Снизу