SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
FPGA для анализа хардвара
DEFCON RUSSIA DCG#7812
Дмитрий Недоспасов <dmitry@h.rdw.re>
Кратко обо мне…
• Закончил аспирантуру в TU Berlin, тема новые виды анализа чипов
• Работаю совместно с Olivier THOMAS и Texplained SARL во Фрации
• Еще работаю как фрилансер и тренер “IC RE 101” и “Keep it Synple Stupid”
• Преподаю “Hardware Security” в TU Berlin
• Буду в конце года делать стартап под более совершенствуемого
конкурента Yubikey
• Twitter: @nedos
• Email: dmitry@h.rdw.re
WTFPGA?
• Программируемая пользователем
вентильная матрица
• Не программируют в “классическом”
смысле
• Вместо этого реализуется логическая
схема
• Это не замена софту и
микроконтроллерам но имеет некие
преимущества
Hardware Basics
Logic Gates
4
ASSIGNMENT 2.3
Half Adder A B SUM CARRY Full Adder A B C_IN SUM C_OUT
NOR
A B Y
0 0 1
0 1 0
1 0 0
1 1 0
NAND
A B Y
0 0 1
0 1 1
1 0 1
1 1 0
AND
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
XOR
A B Y
0 0 0
0 1 1
1 0 1
1 1 0
OR
A B Y
0 0 0
0 1 1
1 0 1
1 1 1
NOT
A Y
0 1
1 0
Hardware Basics
Karnaugh Map for Combinational Logic
๏ Boolean results are
transferred from a truth table
not Karnaugh map

๏ Writing minimal boolean
expressions
5
Figure Source: Wikipedia
Hardware Basics
Logic Synthesis by Karnaugh Map
6
Figure Source: Wikipedia
Place & RouteSynthesis
Chapter 2: FPGA Design Flow
R
Design Flow Diagram
Figure 2-1, “Design Flow Overview Diagram,” shows an overview of the design flow
steps.
Figure 2-1: Design Flow Overview Diagram
X10303
Entering your Design
and Selecting Hierarchy
Functional Simulation
of your Design
Synthesizing and Optimizing
your Design
Adding Design
Constraints
Evaluating your Design Size
and Performance
Placing and Routing
your Design
Downloading to the Device,
In-System Debugging
Generating a Bitstream
Creating a PROM, ACE
or JTAG File
Evaluating your Design's Coding Style
and System Features
Timing Simulation
of your Design
Static Timing
Analysis
Дизайн
Simulation
Hardware Description Languages
• Я для начинающих настоятельно рекомендую Verilog
• Verilog очень часто используется и поддерживается
как промежуточный формат между различными
тулз
• Главное, что надо помнить когда читаешь HDL, что
блок синтезируется как логическая цепочка из
вентилей и выполняется постоянно!
• В императивном программирование каждая строка
кода выполняется одна за другой, а в синтезе HDL
все выполняются одновременно.
• Чаще всего используется стиль с blocking
assignemnts (<=), а это означает что последнее
присвоение это то значение которая будет в
регистре при следующем цикле
module	
  counter	
  (	
  
	
   input	
  wire	
  clk,	
  
	
   input	
  wire	
  rst,	
  
	
   input	
  wire	
  enable,	
  
	
   output	
  reg	
  [31:0]	
  count	
  
);	
  
always	
  @(posedge	
  clk)	
  
begin	
  
	
   if	
  (	
  rst	
  )	
  
	
   begin	
  
	
   	
   count	
  	
  <=	
  32'b0;	
  
	
   end	
  
	
   else	
  
	
   begin	
  
	
   	
   count	
  <=	
  count;	
  
	
   	
   if	
  (	
  enable	
  )	
  
	
   	
   begin	
  
	
   	
   	
   count	
  	
  <=	
  count	
  +	
  1'b1;	
  
	
   	
   end	
  
	
   end	
  
end	
  
endmodule
Конечный Автомат UART START
UART DATA
UART STOP
UART IDLE
Default assignments
etu cnt <= (etu cnt + 1);
dout <= dout;
rdy <= rdy;
data <= data;
state <= state;
bit cnt <= bit cnt;
en
etu cnt <= 9’d0;
bit cnt <= 3’d0;
rdy <= 1’b0;
dout <= 1’b0;
data <= data out;
state <= ‘UART DATA;
etu full
etu cnt <= 9’d0;
bit cnt <= (bit cnt + 1);
dout <= data[0];
data <= {data[0], data[7:1]};
bit cnt == 3’d7
state <= ‘UART STOP;
etu full
etu cnt <= 9’d0;
dout <= 1’b1;
state <= ‘UART IDLE;
etu full
rdy <= 1’b1;
state <= ‘UART START;
Figure 7: UART transmitter state machine.
• С помощью always @ (posedge clk) и
блокирующего присвоения (<=) синтезируется
секвенциальная логика
• С помощью assign и не блокирующего
присвоения синтезируется комбинационная
логика
• Синтез комбинационной логики одно из
мощнещих преимуществ HDL-а так как
комбинационная логика реагирует
моментально на сигнал
• Например можно выделить предикаты в логике:
assign etu_full = (etu_cnt == `UART_FULL_ETU);
• 

Задания
Papilio Pro (Xilinx Spartan 6) LPC1343 ARM Cortex M3
MITM
• Платы реализовывают перекресток.
Светофоры посылают что они
переключись на красный свет.
MITM: DoS
assign tx1 = enable ? rx1 : 1’b1;
assign tx2 = enable ? rx2 : 1’b1;
MITM: DoS
rotocol. UART is one of the simplest serial protocols and is commonly used for debugging and
nication between di↵erent ICs on a PCB. UART is identical to RS-232 except for the voltage
ed the signaling. The speed of the serial communications, i.e. the baud rate or the frequency
character, is predetermined. Generally in UART implementations, the line is held high while
tocol is in the idle state. To signal the start of a transfer a start character is transmited during
he signal is held low, i.e. a logical 0. Next 5 - 8 data bits are transmited: a high signal state
onds to a logical 1, a low signal state corresponds to a logical 0. This may be followed by a
it, depending on the configuration. At the end of the transmission one or two stop characters
smitted.
uart tx
SysClk clk
SysRst rst
en en
data out[7:0] data out[7:0]
8
doutdout
rdyrdy
Figure 6: module uart tx
ons:
sume we have 100MHz system clock. For a 9600 baud UART what is the delay in clock cycles
ween charcters?
nsider the signals necessary for a UART transmitter, see Figure 6. Why is the rdy signal
essary?
aw a UART transmitter state machine in Figure 7.
S 0 1 2 3 4 5 6 7 S
d[0] d[1] d[2] d[3] d[4] d[5] d[6] d[7]
Figure 5: UART timing diagram.
exercise will we will create a module capable of transmitting bytes of data using the UART
rotocol. UART is one of the simplest serial protocols and is commonly used for debugging and
nication between di↵erent ICs on a PCB. UART is identical to RS-232 except for the voltage
ed the signaling. The speed of the serial communications, i.e. the baud rate or the frequency
character, is predetermined. Generally in UART implementations, the line is held high while
tocol is in the idle state. To signal the start of a transfer a start character is transmited during
he signal is held low, i.e. a logical 0. Next 5 - 8 data bits are transmited: a high signal state
onds to a logical 1, a low signal state corresponds to a logical 0. This may be followed by a
it, depending on the configuration. At the end of the transmission one or two stop characters
smitted.
uart tx
SysClk clk
SysRst rst
en en
data out[7:0] data out[7:0]
8
doutdout
rdyrdy
Figure 6: module uart tx
PIN
• Через UART вводится PIN
• При не правильном вводи PIN-а диоды
на плате начинают мигать
• Диоды мигают 5 секунд
• Надо убрать эту задержку
PIN
assign reset = led_in;
Тайминг пароля
• В embedded системах навсегда есть
strcmp
• Часто разработчики пишут свой strcmp
особенно если пароль определенной
длины
• Пароль проверяется по одной букве
Тайминг пароля
“Password12345678”
“Password12345678”
“Password Incorrect”
cycles = 832
Спасибо за внимание
• Точно будет этот тренинг на REC0N и Toorcon
• Скорее всего мы его с 0x90 постараемся сделать на ЗН
• Очень хочу в какой-то момент под него сделать Kickstarter
• Могу сделать он-сайт: Dmitry Nedospasov <dmitry@h.rdw.re>

Más contenido relacionado

La actualidad más candente

Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Mikhail Kurnosov
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructPositive Hack Days
 
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Mikhail Kurnosov
 
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2Eugeniy Tyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3Eugeniy Tyumentcev
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Mikhail Kurnosov
 
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведенияДракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведенияPlatonov Sergey
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...a15464321646213
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPMikhail Kurnosov
 
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX ThreadsПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX ThreadsAlexey Paznikov
 
Ловим шеллкоды под ARM
Ловим шеллкоды под ARMЛовим шеллкоды под ARM
Ловим шеллкоды под ARMPositive Hack Days
 
Aricent ISS integration for Marvell - requirements to candidates
Aricent ISS integration for Marvell - requirements to candidatesAricent ISS integration for Marvell - requirements to candidates
Aricent ISS integration for Marvell - requirements to candidatesVolodymyr Khomenko
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаSergey Platonov
 
Григорий Демченко, Асинхронность и неблокирующая синхронизация
Григорий Демченко, Асинхронность и неблокирующая синхронизацияГригорий Демченко, Асинхронность и неблокирующая синхронизация
Григорий Демченко, Асинхронность и неблокирующая синхронизацияSergey Platonov
 
Лекция 7. Язык параллельного программирования Intel Cilk Plus
Лекция 7. Язык параллельного программирования Intel Cilk PlusЛекция 7. Язык параллельного программирования Intel Cilk Plus
Лекция 7. Язык параллельного программирования Intel Cilk PlusMikhail Kurnosov
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)Smolensk Computer Science Club
 
Address Sanitizer или как сделать программы на c/с++ надежнее и безопаснее (К...
Address Sanitizer или как сделать программы на c/с++ надежнее и безопаснее (К...Address Sanitizer или как сделать программы на c/с++ надежнее и безопаснее (К...
Address Sanitizer или как сделать программы на c/с++ надежнее и безопаснее (К...Ontico
 
Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?Yauheni Akhotnikau
 

La actualidad más candente (20)

Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
 
Обратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai StructОбратная разработка бинарных форматов с помощью Kaitai Struct
Обратная разработка бинарных форматов с помощью Kaitai Struct
 
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
Лекция 7: Многопоточное программирование: часть 3 (OpenMP)
 
разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2разработка серверов и серверных приложений лекция №2
разработка серверов и серверных приложений лекция №2
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
 
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведенияДракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
Дракон в мешке: от LLVM к C++ и проблемам неопределенного поведения
 
Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...Архитектура и программирование потоковых многоядерных процессоров для научных...
Архитектура и программирование потоковых многоядерных процессоров для научных...
 
Лекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMPЛекция 6. Стандарт OpenMP
Лекция 6. Стандарт OpenMP
 
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX ThreadsПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
 
Ловим шеллкоды под ARM
Ловим шеллкоды под ARMЛовим шеллкоды под ARM
Ловим шеллкоды под ARM
 
Aricent ISS integration for Marvell - requirements to candidates
Aricent ISS integration for Marvell - requirements to candidatesAricent ISS integration for Marvell - requirements to candidates
Aricent ISS integration for Marvell - requirements to candidates
 
Павел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладкаПавел Довгалюк, Обратная отладка
Павел Довгалюк, Обратная отладка
 
Григорий Демченко, Асинхронность и неблокирующая синхронизация
Григорий Демченко, Асинхронность и неблокирующая синхронизацияГригорий Демченко, Асинхронность и неблокирующая синхронизация
Григорий Демченко, Асинхронность и неблокирующая синхронизация
 
Лекция 7. Язык параллельного программирования Intel Cilk Plus
Лекция 7. Язык параллельного программирования Intel Cilk PlusЛекция 7. Язык параллельного программирования Intel Cilk Plus
Лекция 7. Язык параллельного программирования Intel Cilk Plus
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
 
Address Sanitizer или как сделать программы на c/с++ надежнее и безопаснее (К...
Address Sanitizer или как сделать программы на c/с++ надежнее и безопаснее (К...Address Sanitizer или как сделать программы на c/с++ надежнее и безопаснее (К...
Address Sanitizer или как сделать программы на c/с++ надежнее и безопаснее (К...
 
Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?Для чего мы делали свой акторный фреймворк и что из этого вышло?
Для чего мы делали свой акторный фреймворк и что из этого вышло?
 

Destacado

Олег Купреев - Обзор и демонстрация нюансов и трюков из области беспроводных ...
Олег Купреев - Обзор и демонстрация нюансов и трюков из области беспроводных ...Олег Купреев - Обзор и демонстрация нюансов и трюков из области беспроводных ...
Олег Купреев - Обзор и демонстрация нюансов и трюков из области беспроводных ...DefconRussia
 
Weakpass - defcon russia 23
Weakpass - defcon russia 23Weakpass - defcon russia 23
Weakpass - defcon russia 23DefconRussia
 
Vm ware fuzzing - defcon russia 20
Vm ware fuzzing  - defcon russia 20Vm ware fuzzing  - defcon russia 20
Vm ware fuzzing - defcon russia 20DefconRussia
 
[Defcon Russia #29] Борис Савков - Bare-metal programming на примере Raspber...
[Defcon Russia #29] Борис Савков -  Bare-metal programming на примере Raspber...[Defcon Russia #29] Борис Савков -  Bare-metal programming на примере Raspber...
[Defcon Russia #29] Борис Савков - Bare-metal programming на примере Raspber...DefconRussia
 
nosymbols - defcon russia 20
nosymbols - defcon russia 20nosymbols - defcon russia 20
nosymbols - defcon russia 20DefconRussia
 
Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...
Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...
Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...DefconRussia
 
[Defcon Russia #29] Алексей Тюрин - Spring autobinding
[Defcon Russia #29] Алексей Тюрин - Spring autobinding[Defcon Russia #29] Алексей Тюрин - Spring autobinding
[Defcon Russia #29] Алексей Тюрин - Spring autobindingDefconRussia
 
[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...
[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...
[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...DefconRussia
 
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC [DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC DefconRussia
 
Георгий Зайцев - Reversing golang
Георгий Зайцев - Reversing golangГеоргий Зайцев - Reversing golang
Георгий Зайцев - Reversing golangDefconRussia
 
Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23DefconRussia
 
Attacks on tacacs - Алексей Тюрин
Attacks on tacacs - Алексей ТюринAttacks on tacacs - Алексей Тюрин
Attacks on tacacs - Алексей ТюринDefconRussia
 
Zn task - defcon russia 20
Zn task  - defcon russia 20Zn task  - defcon russia 20
Zn task - defcon russia 20DefconRussia
 
Cisco IOS shellcode: All-in-one
Cisco IOS shellcode: All-in-oneCisco IOS shellcode: All-in-one
Cisco IOS shellcode: All-in-oneDefconRussia
 
HTTP HOST header attacks
HTTP HOST header attacksHTTP HOST header attacks
HTTP HOST header attacksDefconRussia
 
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"Defcon Moscow
 
Automating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellAutomating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellEnclaveSecurity
 

Destacado (17)

Олег Купреев - Обзор и демонстрация нюансов и трюков из области беспроводных ...
Олег Купреев - Обзор и демонстрация нюансов и трюков из области беспроводных ...Олег Купреев - Обзор и демонстрация нюансов и трюков из области беспроводных ...
Олег Купреев - Обзор и демонстрация нюансов и трюков из области беспроводных ...
 
Weakpass - defcon russia 23
Weakpass - defcon russia 23Weakpass - defcon russia 23
Weakpass - defcon russia 23
 
Vm ware fuzzing - defcon russia 20
Vm ware fuzzing  - defcon russia 20Vm ware fuzzing  - defcon russia 20
Vm ware fuzzing - defcon russia 20
 
[Defcon Russia #29] Борис Савков - Bare-metal programming на примере Raspber...
[Defcon Russia #29] Борис Савков -  Bare-metal programming на примере Raspber...[Defcon Russia #29] Борис Савков -  Bare-metal programming на примере Raspber...
[Defcon Russia #29] Борис Савков - Bare-metal programming на примере Raspber...
 
nosymbols - defcon russia 20
nosymbols - defcon russia 20nosymbols - defcon russia 20
nosymbols - defcon russia 20
 
Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...
Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...
Andrey Belenko, Alexey Troshichev - Внутреннее устройство и безопасность iClo...
 
[Defcon Russia #29] Алексей Тюрин - Spring autobinding
[Defcon Russia #29] Алексей Тюрин - Spring autobinding[Defcon Russia #29] Алексей Тюрин - Spring autobinding
[Defcon Russia #29] Алексей Тюрин - Spring autobinding
 
[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...
[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...
[Defcon Russia #29] Александр Ермолов - Safeguarding rootkits: Intel Boot Gua...
 
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC [DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
[DCG 25] Александр Большев - Never Trust Your Inputs or How To Fool an ADC
 
Георгий Зайцев - Reversing golang
Георгий Зайцев - Reversing golangГеоргий Зайцев - Reversing golang
Георгий Зайцев - Reversing golang
 
Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23Advanced cfg bypass on adobe flash player 18 defcon russia 23
Advanced cfg bypass on adobe flash player 18 defcon russia 23
 
Attacks on tacacs - Алексей Тюрин
Attacks on tacacs - Алексей ТюринAttacks on tacacs - Алексей Тюрин
Attacks on tacacs - Алексей Тюрин
 
Zn task - defcon russia 20
Zn task  - defcon russia 20Zn task  - defcon russia 20
Zn task - defcon russia 20
 
Cisco IOS shellcode: All-in-one
Cisco IOS shellcode: All-in-oneCisco IOS shellcode: All-in-one
Cisco IOS shellcode: All-in-one
 
HTTP HOST header attacks
HTTP HOST header attacksHTTP HOST header attacks
HTTP HOST header attacks
 
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
Defcon Moscow #9 - Oleg Kupreev "Telecommunication Hardware Vulnerabilities"
 
Automating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShellAutomating Post Exploitation with PowerShell
Automating Post Exploitation with PowerShell
 

Similar a Nedospasov defcon russia 23

Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"
Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"
Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"Defcon Moscow
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиMUK
 
Обзор современных микроконтроллеров и их архитектур
Обзор современных микроконтроллеров и их архитектурОбзор современных микроконтроллеров и их архитектур
Обзор современных микроконтроллеров и их архитектурIoT Community
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)Ontico
 
Стресс тестирование процессора plug-компьютера
Стресс тестирование процессора plug-компьютераСтресс тестирование процессора plug-компьютера
Стресс тестирование процессора plug-компьютераSQALab
 
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисления
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисленияПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисления
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисленияAlexey Paznikov
 
7.13.7 Руководство пользователя Altistart 48 протокол Modbus
7.13.7 Руководство пользователя Altistart 48 протокол Modbus7.13.7 Руководство пользователя Altistart 48 протокол Modbus
7.13.7 Руководство пользователя Altistart 48 протокол ModbusIgor Golovin
 
Аппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераАппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераstudent_SSGA
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSUlarhat
 
[DD] 1. Basics of digital design
[DD] 1. Basics of digital design[DD] 1. Basics of digital design
[DD] 1. Basics of digital designGabit Altybaev
 
09. АЦП STM32(2)
09. АЦП STM32(2)09. АЦП STM32(2)
09. АЦП STM32(2)KamlachPV
 
Контроллер ARIS C304 – инструмент для реализации цифровых подстанций 6-35 кВ ...
Контроллер ARIS C304 – инструмент для реализации цифровых подстанций 6-35 кВ ...Контроллер ARIS C304 – инструмент для реализации цифровых подстанций 6-35 кВ ...
Контроллер ARIS C304 – инструмент для реализации цифровых подстанций 6-35 кВ ...ООО "Прософт-Системы"
 
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Cisco Russia
 
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresProit-people
 
Поиск неисправностей в беспроводных сетях, управляемых контроллерами
 Поиск неисправностей в беспроводных сетях, управляемых контроллерами Поиск неисправностей в беспроводных сетях, управляемых контроллерами
Поиск неисправностей в беспроводных сетях, управляемых контроллерамиCisco Russia
 

Similar a Nedospasov defcon russia 23 (20)

Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"
Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"
Defcon Moscow #0x0A - Dmitry Nedospasov "WTFPGA?!"
 
High performance computing - принципы проектирования сети
High performance computing - принципы проектирования сетиHigh performance computing - принципы проектирования сети
High performance computing - принципы проектирования сети
 
Serial line
Serial lineSerial line
Serial line
 
Обзор современных микроконтроллеров и их архитектур
Обзор современных микроконтроллеров и их архитектурОбзор современных микроконтроллеров и их архитектур
Обзор современных микроконтроллеров и их архитектур
 
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
SDN & DEVOPS ?= ❤: Практики использования SDN / Александр Шалимов (ЦПИКС, МГУ)
 
Стресс тестирование процессора plug-компьютера
Стресс тестирование процессора plug-компьютераСтресс тестирование процессора plug-компьютера
Стресс тестирование процессора plug-компьютера
 
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисления
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисленияПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисления
ПВТ - осень 2014 - лекция 1 - Введение в параллельные вычисления
 
7.13.7 Руководство пользователя Altistart 48 протокол Modbus
7.13.7 Руководство пользователя Altistart 48 протокол Modbus7.13.7 Руководство пользователя Altistart 48 протокол Modbus
7.13.7 Руководство пользователя Altistart 48 протокол Modbus
 
Аппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераАппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютера
 
CUDA Course 2010 at MSU
CUDA Course 2010 at MSUCUDA Course 2010 at MSU
CUDA Course 2010 at MSU
 
[DD] 1. Basics of digital design
[DD] 1. Basics of digital design[DD] 1. Basics of digital design
[DD] 1. Basics of digital design
 
Bpsk
BpskBpsk
Bpsk
 
09. АЦП STM32(2)
09. АЦП STM32(2)09. АЦП STM32(2)
09. АЦП STM32(2)
 
3
33
3
 
Контроллер ARIS C304 – инструмент для реализации цифровых подстанций 6-35 кВ ...
Контроллер ARIS C304 – инструмент для реализации цифровых подстанций 6-35 кВ ...Контроллер ARIS C304 – инструмент для реализации цифровых подстанций 6-35 кВ ...
Контроллер ARIS C304 – инструмент для реализации цифровых подстанций 6-35 кВ ...
 
07
0707
07
 
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
Nexus 7000 – архитектура передачи данных. Поиск и устранение неисправностей.
 
Multimaster2
Multimaster2Multimaster2
Multimaster2
 
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
"Мультимастер для PostgreSQL" Кельвич Станислав, Книжник Константин, PostgresPro
 
Поиск неисправностей в беспроводных сетях, управляемых контроллерами
 Поиск неисправностей в беспроводных сетях, управляемых контроллерами Поиск неисправностей в беспроводных сетях, управляемых контроллерами
Поиск неисправностей в беспроводных сетях, управляемых контроллерами
 

Más de DefconRussia

Sergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условиях
Sergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условияхSergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условиях
Sergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условияхDefconRussia
 
George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...
George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...
George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...DefconRussia
 
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...DefconRussia
 
Alexey Sintsov- SDLC - try me to implement
Alexey Sintsov- SDLC - try me to implementAlexey Sintsov- SDLC - try me to implement
Alexey Sintsov- SDLC - try me to implementDefconRussia
 
Anton Alexanenkov - Tor and Botnet C&C
Anton Alexanenkov -  Tor and Botnet C&C Anton Alexanenkov -  Tor and Botnet C&C
Anton Alexanenkov - Tor and Botnet C&C DefconRussia
 
Tyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-HashTyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-HashDefconRussia
 
Roman Korkikyan - Timing analysis workshop Part 2 Scary
Roman Korkikyan - Timing analysis workshop Part 2 ScaryRoman Korkikyan - Timing analysis workshop Part 2 Scary
Roman Korkikyan - Timing analysis workshop Part 2 ScaryDefconRussia
 
Roman Korkikyan - Timing analysis workshop Part 2 Practice
Roman Korkikyan - Timing analysis workshop Part 2 PracticeRoman Korkikyan - Timing analysis workshop Part 2 Practice
Roman Korkikyan - Timing analysis workshop Part 2 PracticeDefconRussia
 
Roman Korkikyan - Timing analysis workshop Part 1 Theory
Roman Korkikyan - Timing analysis workshop Part 1 TheoryRoman Korkikyan - Timing analysis workshop Part 1 Theory
Roman Korkikyan - Timing analysis workshop Part 1 TheoryDefconRussia
 
Peter Hlavaty - DBIFuzz
Peter Hlavaty - DBIFuzzPeter Hlavaty - DBIFuzz
Peter Hlavaty - DBIFuzzDefconRussia
 
Vadim Bardakov - AVR & MSP exploitation
Vadim Bardakov - AVR & MSP exploitationVadim Bardakov - AVR & MSP exploitation
Vadim Bardakov - AVR & MSP exploitationDefconRussia
 
Tomas Hlavacek - IP fragmentation attack on DNS
Tomas Hlavacek - IP fragmentation attack on DNSTomas Hlavacek - IP fragmentation attack on DNS
Tomas Hlavacek - IP fragmentation attack on DNSDefconRussia
 

Más de DefconRussia (12)

Sergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условиях
Sergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условияхSergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условиях
Sergey Belov - Покажите нам Impact! Доказываем угрозу в сложных условиях
 
George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...
George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...
George Lagoda - Альтернативное использование вэб сервисов SharePoint со сторо...
 
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
 
Alexey Sintsov- SDLC - try me to implement
Alexey Sintsov- SDLC - try me to implementAlexey Sintsov- SDLC - try me to implement
Alexey Sintsov- SDLC - try me to implement
 
Anton Alexanenkov - Tor and Botnet C&C
Anton Alexanenkov -  Tor and Botnet C&C Anton Alexanenkov -  Tor and Botnet C&C
Anton Alexanenkov - Tor and Botnet C&C
 
Tyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-HashTyurin Alexey - NTLM. Part 1. Pass-the-Hash
Tyurin Alexey - NTLM. Part 1. Pass-the-Hash
 
Roman Korkikyan - Timing analysis workshop Part 2 Scary
Roman Korkikyan - Timing analysis workshop Part 2 ScaryRoman Korkikyan - Timing analysis workshop Part 2 Scary
Roman Korkikyan - Timing analysis workshop Part 2 Scary
 
Roman Korkikyan - Timing analysis workshop Part 2 Practice
Roman Korkikyan - Timing analysis workshop Part 2 PracticeRoman Korkikyan - Timing analysis workshop Part 2 Practice
Roman Korkikyan - Timing analysis workshop Part 2 Practice
 
Roman Korkikyan - Timing analysis workshop Part 1 Theory
Roman Korkikyan - Timing analysis workshop Part 1 TheoryRoman Korkikyan - Timing analysis workshop Part 1 Theory
Roman Korkikyan - Timing analysis workshop Part 1 Theory
 
Peter Hlavaty - DBIFuzz
Peter Hlavaty - DBIFuzzPeter Hlavaty - DBIFuzz
Peter Hlavaty - DBIFuzz
 
Vadim Bardakov - AVR & MSP exploitation
Vadim Bardakov - AVR & MSP exploitationVadim Bardakov - AVR & MSP exploitation
Vadim Bardakov - AVR & MSP exploitation
 
Tomas Hlavacek - IP fragmentation attack on DNS
Tomas Hlavacek - IP fragmentation attack on DNSTomas Hlavacek - IP fragmentation attack on DNS
Tomas Hlavacek - IP fragmentation attack on DNS
 

Nedospasov defcon russia 23

  • 1. FPGA для анализа хардвара DEFCON RUSSIA DCG#7812 Дмитрий Недоспасов <dmitry@h.rdw.re>
  • 2. Кратко обо мне… • Закончил аспирантуру в TU Berlin, тема новые виды анализа чипов • Работаю совместно с Olivier THOMAS и Texplained SARL во Фрации • Еще работаю как фрилансер и тренер “IC RE 101” и “Keep it Synple Stupid” • Преподаю “Hardware Security” в TU Berlin • Буду в конце года делать стартап под более совершенствуемого конкурента Yubikey • Twitter: @nedos • Email: dmitry@h.rdw.re
  • 3. WTFPGA? • Программируемая пользователем вентильная матрица • Не программируют в “классическом” смысле • Вместо этого реализуется логическая схема • Это не замена софту и микроконтроллерам но имеет некие преимущества
  • 4. Hardware Basics Logic Gates 4 ASSIGNMENT 2.3 Half Adder A B SUM CARRY Full Adder A B C_IN SUM C_OUT NOR A B Y 0 0 1 0 1 0 1 0 0 1 1 0 NAND A B Y 0 0 1 0 1 1 1 0 1 1 1 0 AND A B Y 0 0 0 0 1 0 1 0 0 1 1 1 XOR A B Y 0 0 0 0 1 1 1 0 1 1 1 0 OR A B Y 0 0 0 0 1 1 1 0 1 1 1 1 NOT A Y 0 1 1 0
  • 5. Hardware Basics Karnaugh Map for Combinational Logic ๏ Boolean results are transferred from a truth table not Karnaugh map ๏ Writing minimal boolean expressions 5 Figure Source: Wikipedia
  • 6. Hardware Basics Logic Synthesis by Karnaugh Map 6 Figure Source: Wikipedia
  • 7. Place & RouteSynthesis Chapter 2: FPGA Design Flow R Design Flow Diagram Figure 2-1, “Design Flow Overview Diagram,” shows an overview of the design flow steps. Figure 2-1: Design Flow Overview Diagram X10303 Entering your Design and Selecting Hierarchy Functional Simulation of your Design Synthesizing and Optimizing your Design Adding Design Constraints Evaluating your Design Size and Performance Placing and Routing your Design Downloading to the Device, In-System Debugging Generating a Bitstream Creating a PROM, ACE or JTAG File Evaluating your Design's Coding Style and System Features Timing Simulation of your Design Static Timing Analysis Дизайн Simulation
  • 8. Hardware Description Languages • Я для начинающих настоятельно рекомендую Verilog • Verilog очень часто используется и поддерживается как промежуточный формат между различными тулз • Главное, что надо помнить когда читаешь HDL, что блок синтезируется как логическая цепочка из вентилей и выполняется постоянно! • В императивном программирование каждая строка кода выполняется одна за другой, а в синтезе HDL все выполняются одновременно. • Чаще всего используется стиль с blocking assignemnts (<=), а это означает что последнее присвоение это то значение которая будет в регистре при следующем цикле module  counter  (     input  wire  clk,     input  wire  rst,     input  wire  enable,     output  reg  [31:0]  count   );   always  @(posedge  clk)   begin     if  (  rst  )     begin       count    <=  32'b0;     end     else     begin       count  <=  count;       if  (  enable  )       begin         count    <=  count  +  1'b1;       end     end   end   endmodule
  • 9. Конечный Автомат UART START UART DATA UART STOP UART IDLE Default assignments etu cnt <= (etu cnt + 1); dout <= dout; rdy <= rdy; data <= data; state <= state; bit cnt <= bit cnt; en etu cnt <= 9’d0; bit cnt <= 3’d0; rdy <= 1’b0; dout <= 1’b0; data <= data out; state <= ‘UART DATA; etu full etu cnt <= 9’d0; bit cnt <= (bit cnt + 1); dout <= data[0]; data <= {data[0], data[7:1]}; bit cnt == 3’d7 state <= ‘UART STOP; etu full etu cnt <= 9’d0; dout <= 1’b1; state <= ‘UART IDLE; etu full rdy <= 1’b1; state <= ‘UART START; Figure 7: UART transmitter state machine. • С помощью always @ (posedge clk) и блокирующего присвоения (<=) синтезируется секвенциальная логика • С помощью assign и не блокирующего присвоения синтезируется комбинационная логика • Синтез комбинационной логики одно из мощнещих преимуществ HDL-а так как комбинационная логика реагирует моментально на сигнал • Например можно выделить предикаты в логике: assign etu_full = (etu_cnt == `UART_FULL_ETU); • 

  • 10. Задания Papilio Pro (Xilinx Spartan 6) LPC1343 ARM Cortex M3
  • 11. MITM • Платы реализовывают перекресток. Светофоры посылают что они переключись на красный свет.
  • 12. MITM: DoS assign tx1 = enable ? rx1 : 1’b1; assign tx2 = enable ? rx2 : 1’b1;
  • 13. MITM: DoS rotocol. UART is one of the simplest serial protocols and is commonly used for debugging and nication between di↵erent ICs on a PCB. UART is identical to RS-232 except for the voltage ed the signaling. The speed of the serial communications, i.e. the baud rate or the frequency character, is predetermined. Generally in UART implementations, the line is held high while tocol is in the idle state. To signal the start of a transfer a start character is transmited during he signal is held low, i.e. a logical 0. Next 5 - 8 data bits are transmited: a high signal state onds to a logical 1, a low signal state corresponds to a logical 0. This may be followed by a it, depending on the configuration. At the end of the transmission one or two stop characters smitted. uart tx SysClk clk SysRst rst en en data out[7:0] data out[7:0] 8 doutdout rdyrdy Figure 6: module uart tx ons: sume we have 100MHz system clock. For a 9600 baud UART what is the delay in clock cycles ween charcters? nsider the signals necessary for a UART transmitter, see Figure 6. Why is the rdy signal essary? aw a UART transmitter state machine in Figure 7. S 0 1 2 3 4 5 6 7 S d[0] d[1] d[2] d[3] d[4] d[5] d[6] d[7] Figure 5: UART timing diagram. exercise will we will create a module capable of transmitting bytes of data using the UART rotocol. UART is one of the simplest serial protocols and is commonly used for debugging and nication between di↵erent ICs on a PCB. UART is identical to RS-232 except for the voltage ed the signaling. The speed of the serial communications, i.e. the baud rate or the frequency character, is predetermined. Generally in UART implementations, the line is held high while tocol is in the idle state. To signal the start of a transfer a start character is transmited during he signal is held low, i.e. a logical 0. Next 5 - 8 data bits are transmited: a high signal state onds to a logical 1, a low signal state corresponds to a logical 0. This may be followed by a it, depending on the configuration. At the end of the transmission one or two stop characters smitted. uart tx SysClk clk SysRst rst en en data out[7:0] data out[7:0] 8 doutdout rdyrdy Figure 6: module uart tx
  • 14. PIN • Через UART вводится PIN • При не правильном вводи PIN-а диоды на плате начинают мигать • Диоды мигают 5 секунд • Надо убрать эту задержку
  • 16. Тайминг пароля • В embedded системах навсегда есть strcmp • Часто разработчики пишут свой strcmp особенно если пароль определенной длины • Пароль проверяется по одной букве
  • 18. Спасибо за внимание • Точно будет этот тренинг на REC0N и Toorcon • Скорее всего мы его с 0x90 постараемся сделать на ЗН • Очень хочу в какой-то момент под него сделать Kickstarter • Могу сделать он-сайт: Dmitry Nedospasov <dmitry@h.rdw.re>