[Ответить в тред] Ответить в тред

03/04/16 - Набор в модераторы 03.04 по 8.04
26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 17 | 2 | 14
Назад Вниз Каталог Обновить

Пишем программу вместе Ксакеп 04/04/16 Пнд 22:33:21  707960  
14597984013520.jpg (12Кб, 480x360)
14597984013531.png (41Кб, 179x200)
14597984013542.jpg (751Кб, 1200x1000)
Вечер в хату, пацаны. В этом ИТТ треде мы пишем гениальную программу вместе! Вооружаемся GCC, NASM и objdump и начинаем творить. Я начинаю, вы продолжаете. Каждый анон дописывает одну законченную строчку, но обязательно не пишет всю программу целиком. Программа должна иметь строгую логику - читайте, что написали до вас. Го, посоны, это будет вин!


https://ideone.com/WCuyjz


#include <stdio.h>

const char sh[] = "\xb8\x04\x00\x00\x00\xbb\x01\x00"\
"\x00\x00\x68\x75\x69\x21\x00\x68"\
"\x20\x2d\x20\x68\x68\x4f\x50\x00"\
"\x00\x89\xe1\xba\x0a\x00\x00\x00"\
"\xcd\x80\xb8\x01\x00\x00\x00\xbb"\
"\x00\x00\x00\x00\xcd\x8\xc3";


int main(){
int (∗func)();
func = (int (∗)()) sh;
Аноним 04/04/16 Пнд 22:35:08  707963
лезь под шконарь, сиделец ебаный
Аноним 04/04/16 Пнд 22:36:52  707964
return 0; }
Аноним 04/04/16 Пнд 22:41:50  707974
>>707964
лол
Аноним 04/04/16 Пнд 22:59:20  707995
>>707964
int __main(void) { printf("sasaj\n";
Аноним 04/04/16 Пнд 23:02:35  707997
Ошибка компиляции.
Аноним 05/04/16 Втр 20:52:11  708776
>>707960 (OP)
>int (∗func)();
>func = (int (∗)()) sh;
Что эта дичь делает?
Аноним 05/04/16 Втр 21:05:19  708791
>>708776
Объявляется указатель на функцию, который указывает на sh, внутри него скомпилированый исполняемый код (он не работает на современных пеках, потому что в стеке лежит). Внутри - вывод строки "OP hui" напрямую с помощью системного вызова.
Аноним 05/04/16 Втр 21:14:53  708799
>>708791
Сложные язык. Можешь по операторам разложить?
Аноним 06/04/16 Срд 14:17:35  709294
>>708791
Он не на стеке лежит, а (как и все строковые литералы) в "статической" памяти. А не работает оно потому, что странички этой статической памяти не имеют флага x (executable).
Аноним 06/04/16 Срд 16:56:02  709412
>>709294
Работает все.
Аноним 06/04/16 Срд 16:56:54  709413
>>707960 (OP)
>3 пик
Привет Александреску
Аноним 06/04/16 Срд 17:31:11  709452
>>709294
Я так понимаю, это и есть то, что дает флаг PAE в процессорах?
Аноним 06/04/16 Срд 17:37:14  709465
>>709452
Да, только это флаг NX.
Аноним 10/04/16 Вск 16:58:59  712946
Так лол ты нам библиотеки ограничил чо мы терь напишем?
Аноним 10/04/16 Вск 17:03:26  712953
>>708776
https://habrahabr.ru/post/275861/
https://tproger.ru/translations/main-is-usually-a-function-so-then-when-is-it-not/
Аноним 10/04/16 Вск 17:06:05  712955
>>707960 (OP)
exit(0);
Аноним 10/04/16 Вск 17:10:30  712960
14602974306190.jpg (68Кб, 604x450)
https://ideone.com/l8lihx
/thread

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 17 | 2 | 14
Назад Вверх Каталог Обновить

Топ тредов