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

Язык Си и малварь

вангую там очередной гавнокод, как и всё сишное )) переполнения буферов и другая шляпа ))
учите норм языки
по себе людей не судят)
не устану повторять, нет плохих языков, есть плохие кодеры, именно кодеры, скриптикидди еб@чие, а нормальные программисты и на Си пишут безопасный код
аналогия для туго соображающих - долб@ебу нож дай он и себя покалечит, а специалист вырежет вражеский лагерь и уйдет со скальпами домой
если ты не осилил написать на Си что-то стоящее, баз багов, без ошибок, это не значит, что весь мир пишет на Си бажный кривой код - позиция какой-то обиженки на самом деле
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
вангую там очередной гавнокод, как и всё сишное )) переполнения буферов и другая шляпа ))
учите норм языки
Понял, извини пожалуйста, сейчас на питон перепишу. Че то я реально говно сделал тут с утра пораньше
 
Пожалуйста, обратите внимание, что пользователь заблокирован
тебя и твоего кумира давно люди просили, вы как обиженки только морозитесь
Если под кумиром ты имеешь ввиду меня - то я не понял. Что просили и что я должен показать? Код исходный скинуть сюда? А потом мне клиентам что говорить? Добрый вечер? Пол шестого? Свободная касса?
 
ну покажи нормальный код! без багов и ошибок!! тебя и твоего кумира давно люди просили, вы как обиженки только морозитесь )))
Си устаревшее говно на нем нельзя писать нормально
Дурочка, иди на гитхаб, гугли проекты на Си, и смотри, там достаточно примеров хорошего опенсорс кода. Даже на гитхабе, прикинь, на такой помойке, где даже такие как ты спокойно могут свой код оставить. Даже среди всего этого говна можно найти нормальный код.
Еще я тут буду заморачиваться что-то тебе касательно себя доказывать, скидывать сорцы, код, кому надо знают, какой код я пишу и сколько он стоит.
Я тебе если код свой дам, ты побежишь его продавать, и более того - успешно продашь, и очень быстро)
А по поводу тебя давно все ясно, ты просто скользкая мерзкая форумная шалава, которая только и умеет что п@здеть без толку и пытаться взять на понт.

Я уже делал "обзор" на твой профиль, раз с того момента ты ума так и не набрался - скину его еще и тут.
Что же тут у нас ? А тут ты просто за@буешь людей, пишешь херню бессмысленную. Как человек - ты говно, прямо тебе говорю. И со мной согласятся многие, ты пришел на форум заняться троллингом, а троллей тут не любят.
1672874822034.png

1672874832534.png

1672874848460.png

1672874857977.png






А сколько же клоун насобирал предупреждений ? Давайте ка посмотрим вместе...

1672875549743.png


И самое интересное, по какой причине ? Думаешь по причине "неуместное поведение" ? Нет, это следствие, а причина - отсутствие чего-либо в твоей голове, полный вакуум.

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

1672875935631.png
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
нормальные программисты и на Си пишут безопасный код
Скорее всего, это - эффект Даннинга-Крюгера, никто из тех действительно опытных программистов на Цэ или Плюсах, которых я знаю, и в качестве кода которых я уверен, не станет утверждать, что его код полностью безопасен. Код в малварной сфере - вообще забавная вещь, с одной стороны действительно качественный код очень тяжело найти, все просто костылят и похер. С другой стороны, видимо, на практике и говнокода достаточно, чтобы зарабатывать деньги. К сожалению или к счастью, стабильность малварки особо никому не нужна. Отработала - ну и збс, не отработала - да хер знает, что там случилось, может авер покилял, может идска заблочила, может малварка просто засегфолтела, кого это волнует в современном мире?

Но да, я бы с удовольствием ознакомился с исходниками действительно качественно написанной малварки на Цэ с действительно безопасным кодом. Именно большой проект и именно на Цэ.
 
Скорее всего, это - эффект Даннинга-Крюгера, никто из тех действительно опытных программистов на Цэ или Плюсах, которых я знаю, и в качестве кода которых я уверен, не станет утверждать, что его код полностью безопасен. Код в малварной сфере - вообще забавная вещь, с одной стороны действительно качественный код очень тяжело найти, все просто костылят и похер. С другой стороны, видимо, на практике и говнокода достаточно, чтобы зарабатывать деньги. К сожалению или к счастью, стабильность малварки особо никому не нужна. Отработала - ну и збс, не отработала - да хер знает, что там случилось, может авер покилял, может идска заблочила, может малварка просто засегфолтела, кого это волнует в современном мире?

Но да, я бы с удовольствием ознакомился с исходниками действительно качественно написанной малварки на Цэ с действительно безопасным кодом. Именно большой проект и именно на Цэ.
Вот для ознакомления достаточно годный код на Цэ, хоть и достаточно специфический код стайл.
https://github.com/HavocFramework/H...83d6f7bee4afca/Teamserver/data/implants/Demon

P.S автор, сори за флуд в теме, у дяди Дилдо личка закрыта)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вот для ознакомления достаточно годный код на Цэ
Спасибо, я чуток попозже посмотрю, с телефона сложно код на гитхабе читать.

P.S автор, сори за флуд в теме, у дяди Дилдо личка закрыта
А мы сейчас попросим Quake3 отделить флуд и срачи в отдельную тему)
 
гугли проекты на Си, и смотри, там достаточно примеров хорошего опенсорс кода.
пример давай)) "я видел много проектов топ, ищи где-то в в гитхабе" - это не ответ! искал, веришь, не нахожу ) я раньше тоже писал на Си, на Асме, думал это вершина мастерства...но как открыл для себя ООП С++ , понял какой х#йней занимался.

кому надо знают, какой код я пишу и сколько он стоит.
Да никто тебя не знает, ты пустослов новорег.

Но да, я бы с удовольствием ознакомился с исходниками действительно качественно написанной малварки на Цэ с действительно безопасным кодом
++++++
помню как ты квейку это писал)) тоже виликий адепт сишечки , и тоже не привел примера
 
1672932028126.png

я раньше тоже писал на Си, на Асме, думал это вершина мастерства...но как открыл для себя ООП С++ , понял какой х#йней занимался
И тут свинка-капи про#балась, я пишу на ASM, Си и ой как неожиданно для тебя, на C++, C# и Python используя все прелести ООП, иди подмой жопу, ты снова обосралась, если думала, что я заядлый асмо-си программист, и топлю исключительно за функциональщину.
Да никто тебя не знает
Меня хорошо знает 0.0001% форума, но этих людей достаточно, большего и не надо. Ты еще не подмылась ? Так бегом беги, уже начинает заполонять весь топик твоим шлейфом.







Скорее всего, это - эффект Даннинга-Крюгера, никто из тех действительно опытных программистов на Цэ или Плюсах, которых я знаю, и в качестве кода которых я уверен, не станет утверждать, что его код полностью безопасен.
Полностью не станет, и это верно, даже на плюсах с ООП можно написать кривой небезопасный код, я лишь говорю о том, что хороший программист МОЖЕТ написать безопасный код на любом языке, даже на опасном, с точки зрения безопасности кода, но человеческий фактор никто не отменял. А вот плохой кодер НЕ МОЖЕТ написать нормальный безопасный код ни на каком языке, согласись, что дело тут не в инструменте, а в том, кто им пользуется. Думаю ты человек понимающий ситуацию, и тебе не нужно приводить аналогии с ножами и скальпами как пустоголовой капибаре.
Заранее извиняюсь за то, что разместил твою цитату рядом с цитатами шалавы в одном сообщении. Хоть абзацами отделил)
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Вот для ознакомления достаточно годный код на Цэ
Я посмотрел, не знаю насчет годности, но этот код прекрасно иллюстрирует мой тезис о том, зачем так страдать, когда можно было не страдать, используя язык с наличием нормальных абстракций. Возьмем, например, Command.c - файл в 2843 строчки с функциями по добрые 300 строк, с большой вложенностью блоков, да еще и с goto в случае каких-то ошибок. Мне в принципе на это больно смотреть, не говоря уже о том, что тут сложно гарантировать, что какая-то память или хендлы не текут.

Вот тут, например, совершенно не очевидно, освобождаются ли выделенные буфферы, уходят куда-то и зачем-то в глобальный синглтон, и похер (по хорошему в чистом коде, если какая-то сущность управляет освобождением памяти, то она и должна ее себе выделять):
C:
if ( hToken != NULL )
{
    UserDomain = Instance.Win32.LocalAlloc( LPTR, UserDomainSize );

    MemSet( UserDomain, 0, UserDomainSize );

    StringConcatA( UserDomain, lpDomain );
    StringConcatA( UserDomain, Deli );
    StringConcatA( UserDomain, lpUser );

    BufferUser     = Instance.Win32.LocalAlloc( LPTR, dwUserSize );
    BufferPassword = Instance.Win32.LocalAlloc( LPTR, dwPasswordSize );
    BufferDomain   = Instance.Win32.LocalAlloc( LPTR, dwDomainSize );

    MemCopy( BufferUser, lpUser, dwUserSize );
    MemCopy( BufferPassword, lpPassword, dwPasswordSize );
    MemCopy( BufferDomain, lpDomain, dwDomainSize );

    TokenAdd(
        hToken,
        UserDomain,
        TOKEN_TYPE_MAKE_NETWORK,
        NtCurrentTeb()->ClientId.UniqueProcess,
        BufferUser,
        BufferDomain,
        BufferPassword
    );

    PRINTF( "UserDomain => %s\n", UserDomain )

    PackageAddBytes( Package, UserDomain, UserDomainSize );
}

Это не то чтобы придирка, но когда мы делаем свои реализации функций из стандартных библиотек или замену для них на Плюсах, мы всегда валидируем аргументы, чтобы убедиться, что какой-то модуль не передает в функцию, например, нулевой указатель. Это называется "defensive programming". Обычно этого не случается, кто-то даже может посчитать, что валидацией аргументов можно пренебречь, но поверьте в таких языках, как Цэ и Плюсы, это и другие принципы из defensive programming существенно повышают стабильность и спасают от лишнего дебага.
C:
INT StringCompareA( LPCSTR String1, LPCSTR String2 )
{
    for (; *String1 == *String2; String1++, String2++)
    {
        if (*String1 == '\0')
            return 0;
    }

    return ((*(LPCSTR)String1 < *(LPCSTR)String2) ? -1 : +1);

}

Много, где нет проверок на то, что NT/WinAPI-функции незафейлили, такое лучше не допускать, тк управляя имплантом, нам лучше знать именно какая апишка зафейлила и где, в данном же случае мы скорее всего получим STATUS_INVALID_PARAMETER от NtQueryInformationProcess и хз, это процесс не открылся, или токен не открылся, или еще какой-то косяк в самой NtQueryInformationProcess:
C:
hProcess = ProcessOpen( ProcessID, PROCESS_ALL_ACCESS );
Instance.Syscall.NtOpenProcessToken( hProcess, TOKEN_QUERY, &hToken );

NtStatus = Instance.Syscall.NtQueryInformationProcess( hProcess, ProcessBasicInformation, &ProcessBasicInfo, sizeof( PROCESS_BASIC_INFORMATION ), 0 );

Зачем то пытаемся закрывать INVALID_HANDLE_VALUE:
C:
hFile = Instance.Win32.FindFirstFileW( Path, &FindData );
if ( hFile == INVALID_HANDLE_VALUE )
{
    PackageTransmitError( CALLBACK_ERROR_WIN32, NtGetLastError() );
    Instance.Win32.FindClose( hFile ); // << ТУТ

    PUTS( "LEAVE" )
    goto LEAVE;
}

Интересно, а кто и как закроет хендл hFile и hSection, если возвращается наверх только pSection в случае успеха, видимо это не нужно:
C:
if ( NT_SUCCESS( Instance.Syscall.NtOpenFile( &hFile, FILE_READ_DATA, &ObjectAttributes, &IoStatusBlock, FILE_SHARE_READ, 0 ) ) )
{
    if ( NT_SUCCESS( Instance.Syscall.NtCreateSection( &hSection, SECTION_ALL_ACCESS, NULL, NULL, PAGE_READONLY, SEC_COMMIT, hFile ) ) )
    {
        if ( NT_SUCCESS( Instance.Syscall.NtMapViewOfSection( hSection, NtCurrentProcess(), &pSection, NULL, NULL, NULL, &ViewSize, 1, 0, PAGE_READONLY ) ) )
        {
            PRINTF( "pSection => %p\n", pSection );
            return pSection;
        }
    }
}

if ( hSection )
    Instance.Win32.NtClose( hSection );
if ( hFile )
    Instance.Win32.NtClose( hFile );

return ( ULONG_PTR ) NULL;

Парсер, конечно, тоже плачет по хоть какой-то валидации той бинарщины, что он пытается парсить, хотя бы проверить бы, что в буффере есть достаточно данных перед тем, как возвращать указатель с размером (валидация происходит только в начале функции, парсер вполне может вернуть некорректную длину, если в бинарщине какая-то херня, ну и код, вызвавший GetBytes, заедет за конец буффера):
C:
PCHAR ParserGetBytes( PPARSER parser, PINT size )
{
    UINT32  Length  = 0;
    PCHAR   outdata = NULL;

    if ( ! parser )
        return NULL;

    if ( parser->Length < 4 )
        return NULL;

    MemCopy( &Length, parser->Buffer, 4 );
    parser->Buffer += 4;

    if ( parser->Endian )
        Length = __builtin_bswap32( Length );

    outdata = parser->Buffer;
    if ( outdata == NULL )
        return NULL;

    parser->Length -= 4;
    parser->Length -= Length;
    parser->Buffer += Length;

    if ( size != NULL )
        *size = Length;

    return outdata;
}

И самое страшное - это потеря мотивации, это тебе любой Инде скажет:
C:
/*
    * TODO: Finish/Fix this.
    *       It seems like its way to unstable to use this
    *       assembly crashes the agent randomly and dont know why.
    *       Fix this once i get motivated enough or remove this entirely. */

/*

ЗЫ: я не говорю, что это говнокод или что это не будет работать, это будет работать, не знаю, насколько стабильно. Но это просто подтверждает тезисы о том, что не нужно страдать, когда можно не страдать. То есть если бы автор не выебывался и взял для разработки хотя бы Плюсы в режиме Цэ виз классес, получив тем самым хотя бы RAII с деструкторами (при этом ничего не потеряв), то код бы выглядел куда более читаемым и простым. Зачем эти goto, зачем эти лишние уровни вложенности блоков в принципе нужны, если можно сделать код без них?

ЗЗЫ: в сабж кастуется призыв Whisper для наведения еще большой духоты относительно кода на Цэ))
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
да еще и с goto
видимо у автора такой стиль кода. Мне позабавили вот эти моменты:
C:
if ( AmsiPatched == FALSE )
if ( BypassPatchAMSI( ) == TRUE)
size != NULL
Зачем эти все == TRUE, == FALSE, != NULL, если можно было писать без них, добавляя ! перед выражением.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
https://www.moria.us/blog/2023/01/stop-writing-tools-in-c - понятно, что чувачок далеко не так опытен в Цэ, раз пытается парсить стртоком (только самописные токенизаторы тащат, только хардкор), но с глубокофилософским смыслом статьи трудно не согласиться.
 
Рекомендую хороший обзор по языкам для написания малвари (см там таблицу):
1 часть
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
2 часть
C:
int main()
{
    HWND stealth;           //Declare a window handle
    AllocConsole();     //Allocate a new console
    stealth=FindWindowA("ConsoleWindowClass",NULL); //Find the previous Window handler and hide/show the window depending upon the next command
    ShowWindow(stealth,SW_SHOWNORMAL);  //SW_SHOWNORMAL = 1 = show, SW_HIDE = 0 = Hide the console
    RevShell();
    return 0;
}
мда
Сложно назвать это "хорошим" обзором. Таблица может и имеет какую-то ценность, но код со второй части точно нет))) О каком стелс режиме может идти речь, если моргает консоль?))
 
Да там меня собственно таблица и заинтересовала, так как имеет отношение к теме данного топа.
На счет консоли, - он вроде для отладки )
 
Автор напомнил офисных Java программистов, с подобной же аргументацией.
Хочу посмотреть на код автора работающий в ring0, я уверен не составит труда привести пример из своей коллекции шедевров.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Автор напомнил офисных Java программистов, с подобной же аргументацией.
Статья была вынесена как флуд из моей торговой темы. Если под автором - ты имеешь ввиду меня, то какая у меня аргументация? Не понял этот момент.
 
Автор напомнил офисных Java программистов, с подобной же аргументацией.
Хочу посмотреть на код автора работающий в ring0, я уверен не составит труда привести пример из своей коллекции шедевров.
Я так понимаю что капибара=indy с васма, у него есть код для ринг0 на васме и всякие статейки, но он плотно сидит на мефе и на кислоте, видимо под этим делом он открыл для себя ООП на плюсах и словил трип что преисполнился в своём превосходстве, холиварить с ним смысла нет
 


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