- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
#include <stdio.h>
#include <inttypes.h>
#include <string.h>
// endian dependend
#define PUT3(a,b,c) (((uint64_t)a<<8*0) | ((uint64_t)b<<8*1) | ((uint64_t)c<<8*2))
void testswitch(uint64_t x)
{
switch (x)
{
case PUT3('a','b','c'): printf("abc\n");
break;
case PUT3('d','e','f'): printf("def\n");
break;
case PUT3('g','h','i'): printf("ghi\n");
break;
default: printf("Choice other than abc, def and ghi\n");
break;
}
}
int main()
{
uint64_t x = 0;
char a[] = "abc";
memcpy(&x, a, sizeof(a)-1);
testswitch(x);
char b[] = "def";
memcpy(&x, b, sizeof(a)-1);
testswitch(x);
char c[] = "ghi";
memcpy(&x, c, sizeof(a)-1);
testswitch(x);
return 0;
}
хотя там один фиг все из трех байтиков в этом примере, так что пофиг
В тех реализациях как-то фундаментальнее работало.
Что ещё нужно добавить?
До MAX_INT, конечно, не дотянет. Но в этой задаче больше 8 и не надо.
P.S. А, у вас всё равно сишка.
Если нужно поддерживать более длинные строки, придётся строить рекурсивный алгоритм.
https://newsland.com/static/u/comment_image_from_text/16092019/100151640-4695392.jpg
Зачем славянский взгляд на голое тело веселый и пьянящий?
Много возраст причастия явная ересь,
Зачем зарезанный пионерами немец?
Много скандинавы и немцы слетели с российского трона,
Зачем прекращать норманнское иго помогает соборность?
Малость раб принимает свою участь,
Много лютеранин начинает работать лучше.
И даже для сёмы и сёмы премиум есть специальная ветрина с bgn за 77 и 115 руслей и бесплатной доставкой - свисток бросят прямо в ящик.
https://ae01.alicdn.com/kf/HTB1IUyIavWG3KVjSZPcq6zkbXXaF.jpg
к моему удивлению там даже более специфичное железо продают, но скидки 5% всего
То ли люди, то ли куклы.
Взгляд похож на взгляд, а ты — на хуй.
Это не через него ли Мирай пролезал? Лол, он всё еще считается активным!
Нинужно.
Какие, нахуй, гости? ^_^
Воображаемые 2D-девочки.
Бывает распаян уже, но на хайэндах.
Любая эмбеддота сама и есть "контроллер JTAG".
Да, еще в Android x86 тоже есть eth0.
JTAG короче есть везде кроме смарткарт и подобного
Почти во всех микросхемах есть контроллер JTAG, ну кроме самых тривиальных. На плате все такие микросхемы просто объединяются в цепочку, никакого дополнительного обвеса там не надо. Это юзается для boundary scan'а - проверки, что на плате всё припаяно и работает. Эдакий функциональный тест после сборки. Ну и для заливки прошивок, отладки и т.п.
https://ru.wikipedia.org/wiki/JTAG
В более простых микросхемах в той же роли использовалась шина I2C:
https://ru.wikipedia.org/wiki/I²C
>Using this technique, I was able to effectively reset the security fuses without impacting the FLASH code array too much. The pictures below show the array memory status according to the programming/readback tool I was using. A part of the code array was still erased, but probably some judicious resizing of the electrical tape could fix that problem.
Сразу видно интересовавшегося смарткартами!
На флешках и eMMC - нет, у них вроде не ставят jtag. Но если подключиться дебаггером к процессору, который с этой флешкой работает, то в теории можно.
Жопа в том, что JTAG - это просто транспорт, а набор команд у каждого чипа свой, часто вообще не документированный. Поэтому ты вроде и видишь чип в цепочке, а что он умеет - да хуй бы знал.
Уже представил себе, как гости пришли с паяльником, с припоем и разъёмом, с JTAG-адаптером и с кучей софта (у них же пока нет доступа к «Интернету», поэтому нужно брать с собой) для всевозможных чипов (у каждого чипа протокол свой, поэтому универсальным софтом не отделаешься). Кстати, на чём гости будут запускать прошивальщик? Притащат ноутбук или воспользуются компом хозяина?
Но самый главный вопрос, что они могут сделать с роутером через JTAG посредством такого пердолинга?
На этом добычу пароля можно считать законченной. Зачем вся эта ёбля с jtag'ом если можно засунуть паяльник в жопу?
Зачем тогда ноутбук? Ну какой же хакер без ноутбука!
Карта мир вернула эти времена в зад.
А вообще в рашке отдельно стоящих уличных банкоматов вообще нет.
Впрочем, даже он сразу же снимает свой велфер с "мира" и переводит на "визу".
Можно пароль вообще не помнить, а хранить на особом самопальном девайсе с УФ-стираемым EPROM и УФ-светодиодом прямо возле окошка. И если стереть пароль, никаким паяльником в жопу его уже не добыть.
Не просто будет объяснить все эти технические подробности с паяльником в жопе.
Кстати, в связи с этим есть интересная техника: делаем «TrueCrypt» контейнер, записываем на него что-нибудь компрометирующее, но не УК-шное (порнуха с 18+, пиратский винрар, etc), пароль храним на бумажке. А внутри этого контейнера делаем ещё один, скрытый (штатная функциональность «TrueCrypt»), на который и записываем ЦП, поварённую книгу анархиста и дистрибутив «Kali Linux».
Суть в том, что если придут маски-шоу — им после некоторых колебаний (при виде паяльника) сдаётся бумажка с паролем, выплачивается штраф за незначительную хуйню в контейнере — и всё, если повезёт, то глубже копать не будут. А вот если у пациента на компе всё чистенько, легальненько и даже «WinRAR» куплен — у масок возникнут обоснованные вопросы.
Но ведь они тоже знают про многослойные контейнеры...
Разумеется, если у них есть какие-то более серьёзные подозрения (на террориста, экстремиста, политического активиста) — копать они будут куда лучше, и контейнер на наличие вложений проверят (паяльником).
Это вообще деанон в момент покупки. Особенно в эпоху, когда есть «7-zip», «Freearc», «Peazip» и ещё куча бесплатных.
Да «WinRAR» не покупали, когда и конкурирующих архиваторов не было...
https://s.put.re/9K42VBx5.jpeg
Лишнехромосомный, уже раза три упоминали
> заливки паршивок
Впрочем, менее тривиально, но более фруктово было бы снять пассфразу из памяти
Учитывая, консумерские мыльницы представляют собой System-on-Chip... ну ты понял.
> Как определить
Есть всякие кастомайзы типа Eee PC или TransformerPad, там оно точно есть, а в остальных случаях нужен какой-то пердолинг, чтобы определить. Так что проще попробовать.
Сначала найти конечно надо, ну а потом разумеется впаять гребенку.
Получается даже, что не топовое ведро нужно, а ведро для гиков. Так что это не best practice, а хуита. Нассыте ему в каменты кто-нибудь.
https://godbolt.org/z/TjYqd-
а clang и icc осиливает.
error: case label does not reduce to an integer constant
6. It is unspecified whether these arrays are distinct provided their elements have the appropriate values. If the program attempts to modify such an array, the behavior is undefined.
<source>:7:10: warning: expression is not an integer constant expression; folding it to a constant is a GNU extension [-Wgnu-folding-constant]
Охуенно, учитывая что GCC такое компилить отказывается
>So this is some GNU extension, but why GCC doesn't support it?
Because it was undocumented one which was removed a long time ago.
And when I say undocumented one, I Mean it was a bug that GCC accepted it in the first place :).
Даже «Мозилла» какую-то хуйню сотворила, из-за чего у них теперь каждая вторая страница выдаёт «Rendering error» вместо текста статьи.
http://metroblog.ru/post/4853/
Вот что такое сверхсложное может грузиться пару минут, да ещё сбрасывать фокус или введённый текст, если всего лишь нужно отобразить форму с текстовым инпутом и кнопкой отправки?
https://wandbox.org/permlink/MQup6gNK125oeRgK
Но иногда такое говно может ускорить поиск: если у нас много очень длинных строк с одинаковым началом, то несовпадение хэша их сразу отсечёт.
Если же у тебя хеш для слова "huipizda" который ты введешь с клавиатуры совпадет с хешем для "hello" в case то в компилтайме нихуя не обнаружится
https://wandbox.org/permlink/vGraig9HkxoFipJK