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

прочее Хороший C obfuscator

Super Crypt

(L3) cache
Пользователь
Регистрация
03.06.2023
Сообщения
273
Реакции
52
Гарант сделки
3
Депозит
0.032
Используется в работе, делюсь с комьюнити.

меняем --Seed и --Functions
код фудкции main переносим в _fake_main, сохраняем main в таком формате
C:
int main(){
    return _fake_main();
}

Bash:
export TIGRESS_HOME=/dev/tigress/3.1
export PATH=$PATH:/dev/tigress/3.1

CIL_MACHINE="short=2,2 int=4,4 long=4,4 long_long=8,8 pointer=4,4 \
             alignof_enum=4 float=4,4 double=8,8 long_double=12,12 \
             void=1 bool=1,1 fun=1,1 alignof_string=1 max_alignment=16 \
             size_t=unsigned_int wchar_t=int char_signed=true \
             const_string_literals=true big_endian=false \
             __thread_is_keyword=true __builtin_va_list=true \
             underscore_name=true"; export CIL_MACHINE;

tigress-merge --gcc=i686-w64-mingw32-gcc main.cpp FileOpLock.cpp --out=full.c

tigress --gcc=i686-w64-mingw32-gcc --Seed=1523 --Environment=x86_64:Linux:Gcc:4.6 \
        --Transform=Split \
                --SplitCount=20 \
                --SplitName=__super_fnc_ \
                --SplitKinds=top,block,deep,recursive,level,inside \
                --SplitLevel=30 \
                --Functions=getbuffer,decrypt,_fake_main \
        --Transform=RndArgs\
                --RndArgsBogusNo=20 \
                --Functions=getbuffer,decrypt,_fake_main,/.\*__super_fnc_.\*/,/.\*getarr.\*/ \
        --Transform=Flatten \
                --Functions=getbuffer,decrypt,_fake_main,/.\*__super_fnc_.\*/ \
                --FlattenDispatch=switch,goto,indirect,call \
                --FlattenSplitBasicBlocks=true \
                --FlattenRandomizeBlocks=true \
        --Transform=EncodeLiterals \
                --Functions=getbuffer,decrypt,_fake_main,/.\*__super_fnc_.\*/ \
        --Transform=EncodeArithmetic \
                --Functions=getbuffer,decrypt,_fake_main,main,/.\*__super_fnc_.\*/ \
        --out=obfuscated_main.c \
        full.c -O0 -static -o result.exe
 
Последнее редактирование:
pass:
Скрытый контент для зарегистрированных пользователей.
xss.pro
 
Что-то этот обфускатор с MinGW не получается подружить - пытаюсь кросскомпилить простой месседж-бокс под win32:
C:
#include <windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
  MessageBoxA(0, "hello", "world", MB_OK);
  return 0;
}
С помощью mingw всё компилится:
i686-w64-mingw32-gcc test.c -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
Запускаю под вайном: wine ./test.exe - всё ок.
Но при попытке прогнать этот же код через обфускатор:
Код:
tigress \
  --gcc=i686-w64-mingw32-gcc \
  --envmachine \
  --Environment=x86_64:Linux:Gcc:4.6 \
  --Transform=EncodeLiterals \
    --Functions=main \
  --out=test_obf.c \
  test.c \
  -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
Ловлю ошибку парсинга хидеров самого mingw:
Код:
root@debian:~/Desktop/test# tigress \
  --gcc=i686-w64-mingw32-gcc \
  --envmachine \
  --Environment=x86_64:Linux:Gcc:4.6 \
  --Transform=EncodeLiterals \
    --Functions=main \
  --out=test_obf.c \
  test.c \
  -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
/usr/share/mingw-w64/include/winbase.h[2725:72-72] : syntax error
Parsing error/usr/bin/i686-w64-mingw32-ld: /usr/lib/gcc/i686-w64-mingw32/12-win32/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_w.o): in function `wmain':
/build/./mingw-w64-crt/crt/crt0_w.c:23: undefined reference to `wWinMain@16'
collect2: error: ld returned 1 exit status
Интересно, как это получилось у ТС?

Код:
OS: Darwin
ARCH: x86_64
BUILD DATE: 2020-02-11 15:34:19 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 157

OS: Linux
ARCH: x86_64
BUILD DATE: 2020-02-11 23:13:51 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 153

OS: Linux
ARCH: armv7
BUILD DATE: 2020-02-11 23:09:17 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 156
Код:
i686-w64-mingw32-gcc (GCC) 12-win32
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Код:
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
 
Что-то этот обфускатор с MinGW не получается подружить - пытаюсь кросскомпилить простой месседж-бокс под win32:
C:
#include <windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
  MessageBoxA(0, "hello", "world", MB_OK);
  return 0;
}
С помощью mingw всё компилится:
i686-w64-mingw32-gcc test.c -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
Запускаю под вайном: wine ./test.exe - всё ок.
Но при попытке прогнать этот же код через обфускатор:
Код:
tigress \
  --gcc=i686-w64-mingw32-gcc \
  --envmachine \
  --Environment=x86_64:Linux:Gcc:4.6 \
  --Transform=EncodeLiterals \
    --Functions=main \
  --out=test_obf.c \
  test.c \
  -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
Ловлю ошибку парсинга хидеров самого mingw:
Код:
root@debian:~/Desktop/test# tigress \
  --gcc=i686-w64-mingw32-gcc \
  --envmachine \
  --Environment=x86_64:Linux:Gcc:4.6 \
  --Transform=EncodeLiterals \
    --Functions=main \
  --out=test_obf.c \
  test.c \
  -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
/usr/share/mingw-w64/include/winbase.h[2725:72-72] : syntax error
Parsing error/usr/bin/i686-w64-mingw32-ld: /usr/lib/gcc/i686-w64-mingw32/12-win32/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_w.o): in function `wmain':
/build/./mingw-w64-crt/crt/crt0_w.c:23: undefined reference to `wWinMain@16'
collect2: error: ld returned 1 exit status
Интересно, как это получилось у ТС?

Код:
OS: Darwin
ARCH: x86_64
BUILD DATE: 2020-02-11 15:34:19 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 157

OS: Linux
ARCH: x86_64
BUILD DATE: 2020-02-11 23:13:51 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 153

OS: Linux
ARCH: armv7
BUILD DATE: 2020-02-11 23:09:17 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 156
Код:
i686-w64-mingw32-gcc (GCC) 12-win32
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Код:
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
костылём..)
 
Что-то этот обфускатор с MinGW не получается подружить - пытаюсь кросскомпилить простой месседж-бокс под win32:
C:
#include <windows.h>
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow) {
  MessageBoxA(0, "hello", "world", MB_OK);
  return 0;
}
С помощью mingw всё компилится:
i686-w64-mingw32-gcc test.c -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
Запускаю под вайном: wine ./test.exe - всё ок.
Но при попытке прогнать этот же код через обфускатор:
Код:
tigress \
  --gcc=i686-w64-mingw32-gcc \
  --envmachine \
  --Environment=x86_64:Linux:Gcc:4.6 \
  --Transform=EncodeLiterals \
    --Functions=main \
  --out=test_obf.c \
  test.c \
  -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
Ловлю ошибку парсинга хидеров самого mingw:
Код:
root@debian:~/Desktop/test# tigress \
  --gcc=i686-w64-mingw32-gcc \
  --envmachine \
  --Environment=x86_64:Linux:Gcc:4.6 \
  --Transform=EncodeLiterals \
    --Functions=main \
  --out=test_obf.c \
  test.c \
  -static -Wl,-subsystem,windows -municode -std=c99 -o test.exe
/usr/share/mingw-w64/include/winbase.h[2725:72-72] : syntax error
Parsing error/usr/bin/i686-w64-mingw32-ld: /usr/lib/gcc/i686-w64-mingw32/12-win32/../../../../i686-w64-mingw32/lib/../lib/libmingw32.a(lib32_libmingw32_a-crt0_w.o): in function `wmain':
/build/./mingw-w64-crt/crt/crt0_w.c:23: undefined reference to `wWinMain@16'
collect2: error: ld returned 1 exit status
Интересно, как это получилось у ТС?

Код:
OS: Darwin
ARCH: x86_64
BUILD DATE: 2020-02-11 15:34:19 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 157

OS: Linux
ARCH: x86_64
BUILD DATE: 2020-02-11 23:13:51 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 153

OS: Linux
ARCH: armv7
BUILD DATE: 2020-02-11 23:09:17 -0700
TIGRESS VERSION: 3.1
TIGRESS REVISION: 156
Код:
i686-w64-mingw32-gcc (GCC) 12-win32
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Код:
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
специально же написал как делать
 
Super Crypt подскажи пожалуйста, как быть в ситуации, когда исходники имеют структуру типа
Код:
data/
include/
src/
doc/

и, в оригинале компилятся командой типа
x86_64-w64-mingw32-gcc src/main.c src/second.c -Iinclude ....

И соответственно, внутри .с файлов присутствуют дерективы #include с путями относительно директории include.

Проблема в том, что tigress-merge --gcc=x86_64-w64-mingw32-gcc src/main.c src/second.c --out=full.c ломается на этих директивах #inсlude

Как можно пофиксить такое?
 
Super Crypt подскажи пожалуйста, как быть в ситуации, когда исходники имеют структуру типа
Код:
data/
include/
src/
doc/

и, в оригинале компилятся командой типа
x86_64-w64-mingw32-gcc src/main.c src/second.c -Iinclude ....

И соответственно, внутри .с файлов присутствуют дерективы #include с путями относительно директории include.

Проблема в том, что tigress-merge --gcc=x86_64-w64-mingw32-gcc src/main.c src/second.c --out=full.c ломается на этих директивах #inсlude

Как можно пофиксить такое?
переделай сорс так что бы merge на нём отрабатывал нормально
 


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