The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"На соревновании Pwn2Own 2019 продемонстрированы взломы Firef..."
Отправлено Аноним84701, 22-Мрт-19 22:47 
Так как пятница, да и самому стало интересно, наовноко^W набросал по быстрому макет:

% gcc8 -Wall -Wextra -std=c11 -g -O3 overflow.c -o overflow
% cat overflow.c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main(int argc , char* argv[argc +1]) {
    if (argc < 3) return EXIT_FAILURE;
    
    int64_t x = strtol(argv[1], NULL, 10);
    int64_t y = strtol(argv[2], NULL, 10);
    while (x > y) {x += 0xFFFFFFF;}
    printf("result %ld\n",x);
    return EXIT_SUCCESS;
}

% time ./overflow 4 2
result -9223372036586340477
./overflow 4 2  30,27s user 0,01s system 99% cpu 30,295 total
% time ./overflow 4 2
result -9223372036586340477
./overflow 4 2  30,00s user 0,00s system 99% cpu 30,041 total


и

% cat overflow_checked.c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main(int argc , char* argv[argc +1]) {
    if (argc < 3) return EXIT_FAILURE;
    
    int64_t x = strtol(argv[1], NULL, 10);
    int64_t y = strtol(argv[2], NULL, 10);
    while (x > y) {
        if (__builtin_add_overflow(x, 0xFFFFFFF, &x)){
                printf("overflow detected %ld\n", x);
                break;
        }
    }
    printf("result %ld\n",x);
    return EXIT_SUCCESS;
}
% gcc8 -Wall -Wextra -std=c11 -g -O3 overflow_checked.c -o overflow_checked
% time ./overflow_checked 4 2
overflow detected -9223372036586340477
result -9223372036586340477
./overflow_checked 4 2  30,63s user 0,00s system 99% cpu 30,662 total
% time ./overflow_checked 4 2
overflow detected -9223372036586340477
result -9223372036586340477
./overflow_checked 4 2  29,79s user 0,00s system 99% cpu 29,835 total

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру