- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
#include <stdio.h>
int main(void)
{
int a = a;
printf("%d", a);
return 0;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
#include <stdio.h>
int main(void)
{
int a = a;
printf("%d", a);
return 0;
}
Убрал ворнинг. Проверь.
https://tio.run/##S9ZNT07@/185My85pzQlVcGmuCQlM18vw46LKzOvRCE3MTNPoyw/M0WTq5pLAQhAgokKtgqJ1mBuQRFQIE1DSTVFSUchURMiWJRaUlqUp2BgzVXL9f//v@S0nMT04v@64Yk5OQA
http://govnokod.ru/24763#comment429753
Я использовал __builtin_frame_address(0), чтобы подменить адрес разврата.
А что изменилось?
Идея, как пушить и попать с помощью вызова: объявить функцию с соглашением вызова stdcall (ну чтобы вызывающий код не чистил стек, потому что cdecl всё очистит), но вызвать её не напрямую, а по указателю с каламбуром типов (a la reinterpret_cast).
Если мы вызываем функцию без аргументов через указатель, кастующий её в функцию одного аргумента, то в стеке останется этот аргумент (push).
Если мы вызываем функцию одного аргумента через указатель, кастующий её в функцию без аргументов, то она вытащит из стека этот аргумент (pop).
На платформе x86 __cdecl и __stdcall вообще ничего не передают через регистры, __fastcall у MSVC передаёт два аргумента через регистры, у Борланда –— три аргумента, у Watcom обычно передавались четыре аргумента.
На платформе x86-64 __fastcall в MSVC передаёт четыре аргумента через регистры, в gcc же через регистры передаётся шесть аргументов.
На других процессорах опять же придётся смотреть.
Но сложности не только в этом, а ещё в том, что компилятор ещё пытается по возможности что-то оптимизировать, предполагая, что программист хитрыми приёмами пользоваться не будет.
xkcd 14 стандартов.
Регаем учетки на мыла:
[email protected]
[email protected]
И им приходят письма, даже если они отключили уведомления :)
Не сработает, ЕМНИП, мылосру такого не поддерживает.
Вот список популярных на российских форумах доменов:
1. mail.ru, inbox.ru, list.ru, bk.ru ← это независимые домены.
2. yandex.ru, yandex.com, ya.ru, yandex.by, yandex.ua, yandex.kz, narod.ru ← это псевдонимы одного домена.
3. gmail.com.
4. hotmail.com, live.ru, outlook.com.
5. yahoo.com.
6. rambler.ru, ro.ru.
7. i.ua, meta.ua, ukr.net, bigmir.net.
8. tut.by.
9. inbox.lv.
Домены, принадлежавшие компании QIP, проверять нет смысла, потому что у них сейчас почта «переезжает».
План такой:
1. Кобенируешь юзернеймы и слова из какого-нибудь словаря с этими доменами.
2. Считаешь md5 от каждого полученного возможного е-мейла. Получаешь радужную таблицу.
3. Сравниваешь URL аватаров на «Говнокоде» с вычисленными значениями md5. Если есть совпадение, то с некоторой вероятностью соответствующий е-мейл используется этим юзером.
https://twitter.com/search?f=tweets&q=%22govnokod.ru%22
И тут:
https://yandex.ru/blogs/search?text=%22govnokod.ru%22
From: Говнокод.ру <[email protected]>
To: striker_nemyx <[email protected]>
Subject: Подтверждение регистрации на сайте Говнокод.ру
Hello, striker_nemyx!
На Ваш e-mail была запрошена регистрация на сайте Говнокод.ру!
Для подтверждения своих намерений перейдите по этой ссылке:
http://govnokod.ru/user/confirm?code=0badfacedeadbeefcafebabe
Внимание! Ссылка будет доступна в течение 3-х суток. Если Вы не подтвердите регистрацию за это время, то пользователь будет удален и процесс регистрации придется начинать заново!
С уважением, Ваш Говнокод.
И ты тоже свидетель.
Избавляйся от стереотипов )
p.s. член 18 см.
Сегодня меня ждут объятья очаровательного 17-летнего шлюшкА. И похуй, что член его побывал в жопах большей половины пидоров Владикавказа.