SlideShare a Scribd company logo
1 of 21
Download to read offline
Introduction to VeriFast @ KyotoIntroduction to VeriFast @ KyotoIntroduction to VeriFast @ KyotoIntroduction to VeriFast @ KyotoIntroduction to VeriFast @ Kyoto
Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe
Setup before this presentationSetup before this presentationSetup before this presentationSetup before this presentationSetup before this presentation
☆ Plesse copy following files from the USB stick.☆ Plesse copy following files from the USB stick.☆ Plesse copy following files from the USB stick.☆ Plesse copy following files from the USB stick.☆ Plesse copy following files from the USB stick.
chibios-verifast.tgz
illegal_access.c
verifast-nightly-osx.tar.gz
verifast-nightly.tar.gz
verifast-nightly.zip
chibios-verifast.tgz
illegal_access.c
verifast-nightly-osx.tar.gz
verifast-nightly.tar.gz
verifast-nightly.zip
chibios-verifast.tgz
illegal_access.c
verifast-nightly-osx.tar.gz
verifast-nightly.tar.gz
verifast-nightly.zip
chibios-verifast.tgz
illegal_access.c
verifast-nightly-osx.tar.gz
verifast-nightly.tar.gz
verifast-nightly.zip
chibios-verifast.tgz
illegal_access.c
verifast-nightly-osx.tar.gz
verifast-nightly.tar.gz
verifast-nightly.zip
What's VeriFast?What's VeriFast?What's VeriFast?What's VeriFast?What's VeriFast?
☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast
☆ A verifier for single-threaded and multi-
threaded C and Java language programs
annotated with preconditions and
postconditions written in separation logic.
☆ A verifier for single-threaded and multi-
threaded C and Java language programs
annotated with preconditions and
postconditions written in separation logic.
☆ A verifier for single-threaded and multi-
threaded C and Java language programs
annotated with preconditions and
postconditions written in separation logic.
☆ A verifier for single-threaded and multi-
threaded C and Java language programs
annotated with preconditions and
postconditions written in separation logic.
☆ A verifier for single-threaded and multi-
threaded C and Java language programs
annotated with preconditions and
postconditions written in separation logic.
☆ VeriFast avoids illegal memory accesses such
like buffer overflow.
☆ VeriFast avoids illegal memory accesses such
like buffer overflow.
☆ VeriFast avoids illegal memory accesses such
like buffer overflow.
☆ VeriFast avoids illegal memory accesses such
like buffer overflow.
☆ VeriFast avoids illegal memory accesses such
like buffer overflow.
☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.
Why use VeriFast? #1Why use VeriFast? #1Why use VeriFast? #1Why use VeriFast? #1Why use VeriFast? #1
Why use VeriFast? #2Why use VeriFast? #2Why use VeriFast? #2Why use VeriFast? #2Why use VeriFast? #2
Let's try to boot VeriFast!Let's try to boot VeriFast!Let's try to boot VeriFast!Let's try to boot VeriFast!Let's try to boot VeriFast!
#�Windows
$�unzip�verifast-nightly.zip
$�./verifast-*/bin/vfide.exe
#�Linux
$�tar�xf�verifast-nightly.tar.gz
$�./verifast-*/bin/vfide
#�macOS
$�tar�xf�verifast-nightly-osx.tar.gz
$�./verifast-*/bin/vfide
#�Windows
$�unzip�verifast-nightly.zip
$�./verifast-*/bin/vfide.exe
#�Linux
$�tar�xf�verifast-nightly.tar.gz
$�./verifast-*/bin/vfide
#�macOS
$�tar�xf�verifast-nightly-osx.tar.gz
$�./verifast-*/bin/vfide
#�Windows
$�unzip�verifast-nightly.zip
$�./verifast-*/bin/vfide.exe
#�Linux
$�tar�xf�verifast-nightly.tar.gz
$�./verifast-*/bin/vfide
#�macOS
$�tar�xf�verifast-nightly-osx.tar.gz
$�./verifast-*/bin/vfide
#�Windows
$�unzip�verifast-nightly.zip
$�./verifast-*/bin/vfide.exe
#�Linux
$�tar�xf�verifast-nightly.tar.gz
$�./verifast-*/bin/vfide
#�macOS
$�tar�xf�verifast-nightly-osx.tar.gz
$�./verifast-*/bin/vfide
#�Windows
$�unzip�verifast-nightly.zip
$�./verifast-*/bin/vfide.exe
#�Linux
$�tar�xf�verifast-nightly.tar.gz
$�./verifast-*/bin/vfide
#�macOS
$�tar�xf�verifast-nightly-osx.tar.gz
$�./verifast-*/bin/vfide
You will see VeriFast IDE windowYou will see VeriFast IDE windowYou will see VeriFast IDE windowYou will see VeriFast IDE windowYou will see VeriFast IDE window
Open "illegal_access.c" fileOpen "illegal_access.c" fileOpen "illegal_access.c" fileOpen "illegal_access.c" fileOpen "illegal_access.c" file
VeriFast finds an error, if verify itVeriFast finds an error, if verify itVeriFast finds an error, if verify itVeriFast finds an error, if verify itVeriFast finds an error, if verify it
Why does the error occur?Why does the error occur?Why does the error occur?Why does the error occur?Why does the error occur?
☆ The malloc(3) may return NULL pointer.☆ The malloc(3) may return NULL pointer.☆ The malloc(3) may return NULL pointer.☆ The malloc(3) may return NULL pointer.☆ The malloc(3) may return NULL pointer.
☆ But "myAccount->balance" dereferences the
pointer without checking NULL.
☆ But "myAccount->balance" dereferences the
pointer without checking NULL.
☆ But "myAccount->balance" dereferences the
pointer without checking NULL.
☆ But "myAccount->balance" dereferences the
pointer without checking NULL.
☆ But "myAccount->balance" dereferences the
pointer without checking NULL.
Modify code, and verify itModify code, and verify itModify code, and verify itModify code, and verify itModify code, and verify it
Example for RTOS application #1Example for RTOS application #1Example for RTOS application #1Example for RTOS application #1Example for RTOS application #1
$�export�PATH=`pwd`/verifast-*/bin:$PATH
$�tar�xf�chibios-verifast.tgz
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-
USB
$�make�vfide
$�export�PATH=`pwd`/verifast-*/bin:$PATH
$�tar�xf�chibios-verifast.tgz
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-
USB
$�make�vfide
$�export�PATH=`pwd`/verifast-*/bin:$PATH
$�tar�xf�chibios-verifast.tgz
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-
USB
$�make�vfide
$�export�PATH=`pwd`/verifast-*/bin:$PATH
$�tar�xf�chibios-verifast.tgz
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-
USB
$�make�vfide
$�export�PATH=`pwd`/verifast-*/bin:$PATH
$�tar�xf�chibios-verifast.tgz
$�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-
USB
$�make�vfide
Uncheck arithmetic overflowUncheck arithmetic overflowUncheck arithmetic overflowUncheck arithmetic overflowUncheck arithmetic overflow
Verify RTOS applicationVerify RTOS applicationVerify RTOS applicationVerify RTOS applicationVerify RTOS application
VeriFast finds error with bad mannerVeriFast finds error with bad mannerVeriFast finds error with bad mannerVeriFast finds error with bad mannerVeriFast finds error with bad manner
The error is caused by system stateThe error is caused by system stateThe error is caused by system stateThe error is caused by system stateThe error is caused by system state
ConclusionConclusionConclusionConclusionConclusion
☆ VeriFast is easy to setup and use.☆ VeriFast is easy to setup and use.☆ VeriFast is easy to setup and use.☆ VeriFast is easy to setup and use.☆ VeriFast is easy to setup and use.
☆ VeriFast has own graphical IDE.☆ VeriFast has own graphical IDE.☆ VeriFast has own graphical IDE.☆ VeriFast has own graphical IDE.☆ VeriFast has own graphical IDE.
☆ VeriFast safely uses pointers.☆ VeriFast safely uses pointers.☆ VeriFast safely uses pointers.☆ VeriFast safely uses pointers.☆ VeriFast safely uses pointers.
☆ VeriFast finds violation of RTOS system state.☆ VeriFast finds violation of RTOS system state.☆ VeriFast finds violation of RTOS system state.☆ VeriFast finds violation of RTOS system state.☆ VeriFast finds violation of RTOS system state.
For more informationFor more informationFor more informationFor more informationFor more information
In�English:
"The�VeriFast�Program�Verifier:�A�Tutorial"
https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf
##�In�Japanese
�プログラム検証器�VeriFast:�チュートリアル�
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
"TPPMark2016�を解きながら学ぶ�VeriFast"
https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast
"VeriFast�Termination�Checking�Introduction(α)"
https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a
In�English:
"The�VeriFast�Program�Verifier:�A�Tutorial"
https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf
##�In�Japanese
�プログラム検証器�VeriFast:�チュートリアル�
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
"TPPMark2016�を解きながら学ぶ�VeriFast"
https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast
"VeriFast�Termination�Checking�Introduction(α)"
https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a
In�English:
"The�VeriFast�Program�Verifier:�A�Tutorial"
https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf
##�In�Japanese
�プログラム検証器�VeriFast:�チュートリアル�
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
"TPPMark2016�を解きながら学ぶ�VeriFast"
https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast
"VeriFast�Termination�Checking�Introduction(α)"
https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a
In�English:
"The�VeriFast�Program�Verifier:�A�Tutorial"
https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf
##�In�Japanese
�プログラム検証器�VeriFast:�チュートリアル�
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
"TPPMark2016�を解きながら学ぶ�VeriFast"
https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast
"VeriFast�Termination�Checking�Introduction(α)"
https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a
In�English:
"The�VeriFast�Program�Verifier:�A�Tutorial"
https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf
##�In�Japanese
�プログラム検証器 VeriFast:�チュートリアル�
https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/
Tutorial.md
"TPPMark2016�を解きながら学ぶ VeriFast"
https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast
"VeriFast�Termination�Checking�Introduction(α)"
https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a
Meetup at Osaka tomorrowMeetup at Osaka tomorrowMeetup at Osaka tomorrowMeetup at Osaka tomorrowMeetup at Osaka tomorrow
☆ "#静的コード解析の会 第4回@⼤阪"☆ "#静的コード解析の会 第4回@⼤阪"☆ "#静的コード解析の会 第4回@⼤阪"☆ "#静的コード解析の会 第4回@⼤阪"☆ "#静的コード解析の会 第4回@⼤阪"
☆ https://metasepi.connpass.com/event/55350/☆ https://metasepi.connpass.com/event/55350/☆ https://metasepi.connpass.com/event/55350/☆ https://metasepi.connpass.com/event/55350/☆ https://metasepi.connpass.com/event/55350/
☆ Some talks about "static code analysis"☆ Some talks about "static code analysis"☆ Some talks about "static code analysis"☆ Some talks about "static code analysis"☆ Some talks about "static code analysis"
☆ Hands-on VeriFast with STM32 microcontroller☆ Hands-on VeriFast with STM32 microcontroller☆ Hands-on VeriFast with STM32 microcontroller☆ Hands-on VeriFast with STM32 microcontroller☆ Hands-on VeriFast with STM32 microcontroller
簡約!? λカ娘10 @ 参照透明な海を守る会簡約!? λカ娘10 @ 参照透明な海を守る会簡約!? λカ娘10 @ 参照透明な海を守る会簡約!? λカ娘10 @ 参照透明な海を守る会簡約!? λカ娘10 @ 参照透明な海を守る会
☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b
☆ http://www.paraiso-lang.org/ikmsm/books/
c92.html
☆ http://www.paraiso-lang.org/ikmsm/books/
c92.html
☆ http://www.paraiso-lang.org/ikmsm/books/
c92.html
☆ http://www.paraiso-lang.org/ikmsm/books/
c92.html
☆ http://www.paraiso-lang.org/ikmsm/books/
c92.html
*�第1章�モナドとひも
*�第2章�⽮澤にこ先輩と⼀緒にモナドモナド!
*�第3章�Coqダンジョン:�底抜けの壺の夢
*�第4章�IST(Internal�Set�Theory)�⼊門�(後編)
*�第5章�静的コード解析はいいぞ!
*�第6章�VeriFastチュートリアル
*�第1章�モナドとひも
*�第2章�⽮澤にこ先輩と⼀緒にモナドモナド!
*�第3章�Coqダンジョン:�底抜けの壺の夢
*�第4章�IST(Internal�Set�Theory)�⼊門�(後編)
*�第5章�静的コード解析はいいぞ!
*�第6章�VeriFastチュートリアル
*�第1章�モナドとひも
*�第2章�⽮澤にこ先輩と⼀緒にモナドモナド!
*�第3章�Coqダンジョン:�底抜けの壺の夢
*�第4章�IST(Internal�Set�Theory)�⼊門�(後編)
*�第5章�静的コード解析はいいぞ!
*�第6章�VeriFastチュートリアル
*�第1章�モナドとひも
*�第2章�⽮澤にこ先輩と⼀緒にモナドモナド!
*�第3章�Coqダンジョン:�底抜けの壺の夢
*�第4章�IST(Internal�Set�Theory)�⼊門�(後編)
*�第5章�静的コード解析はいいぞ!
*�第6章�VeriFastチュートリアル
*�第1章 モナドとひも
*�第2章 ⽮澤にこ先輩と⼀緒にモナドモナド!
*�第3章 Coqダンジョン:�底抜けの壺の夢
*�第4章 IST(Internal�Set�Theory)�⼊門�(後編)
*�第5章 静的コード解析はいいぞ!
*�第6章 VeriFastチュートリアル
License of photosLicense of photosLicense of photosLicense of photosLicense of photos
*�Creative�Commons�BBB�│�Flickr
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr
��https://www.flickr.com/photos/yto/8197280407/
��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0
*�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr
��https://www.flickr.com/photos/pedrosz/34993395402/
��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0
*�Creative�Commons�BBB�│�Flickr
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr
��https://www.flickr.com/photos/yto/8197280407/
��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0
*�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr
��https://www.flickr.com/photos/pedrosz/34993395402/
��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0
*�Creative�Commons�BBB�│�Flickr
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr
��https://www.flickr.com/photos/yto/8197280407/
��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0
*�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr
��https://www.flickr.com/photos/pedrosz/34993395402/
��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0
*�Creative�Commons�BBB�│�Flickr
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr
��https://www.flickr.com/photos/yto/8197280407/
��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0
*�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr
��https://www.flickr.com/photos/pedrosz/34993395402/
��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0
*�Creative�Commons�BBB�│�Flickr
��https://www.flickr.com/photos/steren/2732488224/
��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0
*�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr
��https://www.flickr.com/photos/yto/8197280407/
��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0
*�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr
��https://www.flickr.com/photos/pedrosz/34993395402/
��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0

More Related Content

What's hot

Simplest-Ownage-Human-Observed… - Routers
 Simplest-Ownage-Human-Observed… - Routers Simplest-Ownage-Human-Observed… - Routers
Simplest-Ownage-Human-Observed… - RoutersLogicaltrust pl
 
Linux Security APIs and the Chromium Sandbox
Linux Security APIs and the Chromium SandboxLinux Security APIs and the Chromium Sandbox
Linux Security APIs and the Chromium SandboxPatricia Aas
 
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...Felipe Prado
 
44CON London 2015 - Jtagsploitation: 5 wires, 5 ways to root
44CON London 2015 - Jtagsploitation: 5 wires, 5 ways to root44CON London 2015 - Jtagsploitation: 5 wires, 5 ways to root
44CON London 2015 - Jtagsploitation: 5 wires, 5 ways to root44CON
 
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchaginstackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
stackconf 2020 | Speeding up Linux disk encryption by Ignat KorchaginNETWAYS
 
Asterisk security with kingasterisk
Asterisk security with kingasteriskAsterisk security with kingasterisk
Asterisk security with kingasteriskKing Asterisk
 
Getting_Started_With_Docker
Getting_Started_With_DockerGetting_Started_With_Docker
Getting_Started_With_DockerJason Greathouse
 
Introduction GStreamer
Introduction GStreamerIntroduction GStreamer
Introduction GStreamerShih-Yuan Lee
 
Thunderbolts and Lightning: Very Very Frightening
Thunderbolts and Lightning: Very Very FrighteningThunderbolts and Lightning: Very Very Frightening
Thunderbolts and Lightning: Very Very Frighteningblowmenowpls
 
如何利用 Docker 強化網站安全
如何利用 Docker 強化網站安全如何利用 Docker 強化網站安全
如何利用 Docker 強化網站安全Tim Hsu
 
Generator Tricks for Systems Programmers
Generator Tricks for Systems ProgrammersGenerator Tricks for Systems Programmers
Generator Tricks for Systems ProgrammersHiroshi Ono
 
ch8-pv1-the-virtual-filesystem
ch8-pv1-the-virtual-filesystemch8-pv1-the-virtual-filesystem
ch8-pv1-the-virtual-filesystemyushiang fu
 
[ElasticStack]What happens when you visualize servers exposed to the world?
[ElasticStack]What happens when you visualize servers exposed to the world? [ElasticStack]What happens when you visualize servers exposed to the world?
[ElasticStack]What happens when you visualize servers exposed to the world? Masamitsu Maehara
 
Smartcard Vulnerabilities In Modern Banking Malwaremalware
Smartcard Vulnerabilities In Modern Banking MalwaremalwareSmartcard Vulnerabilities In Modern Banking Malwaremalware
Smartcard Vulnerabilities In Modern Banking MalwaremalwarePositive Hack Days
 
窺探職場上所需之資安專業技術與能力 Tdohconf
窺探職場上所需之資安專業技術與能力 Tdohconf窺探職場上所需之資安專業技術與能力 Tdohconf
窺探職場上所需之資安專業技術與能力 Tdohconfjack51706
 
Introduction to Gstreamer
Introduction to GstreamerIntroduction to Gstreamer
Introduction to GstreamerRand Graham
 
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_finalYuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_finalPacSecJP
 

What's hot (18)

Simplest-Ownage-Human-Observed… - Routers
 Simplest-Ownage-Human-Observed… - Routers Simplest-Ownage-Human-Observed… - Routers
Simplest-Ownage-Human-Observed… - Routers
 
Linux Security APIs and the Chromium Sandbox
Linux Security APIs and the Chromium SandboxLinux Security APIs and the Chromium Sandbox
Linux Security APIs and the Chromium Sandbox
 
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
DEF CON 27 - GRICHTER - reverse engineering 4g hotspots for fun bugs net fina...
 
44CON London 2015 - Jtagsploitation: 5 wires, 5 ways to root
44CON London 2015 - Jtagsploitation: 5 wires, 5 ways to root44CON London 2015 - Jtagsploitation: 5 wires, 5 ways to root
44CON London 2015 - Jtagsploitation: 5 wires, 5 ways to root
 
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchaginstackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
stackconf 2020 | Speeding up Linux disk encryption by Ignat Korchagin
 
Asterisk security with kingasterisk
Asterisk security with kingasteriskAsterisk security with kingasterisk
Asterisk security with kingasterisk
 
Getting_Started_With_Docker
Getting_Started_With_DockerGetting_Started_With_Docker
Getting_Started_With_Docker
 
Introduction GStreamer
Introduction GStreamerIntroduction GStreamer
Introduction GStreamer
 
Thunderbolts and Lightning: Very Very Frightening
Thunderbolts and Lightning: Very Very FrighteningThunderbolts and Lightning: Very Very Frightening
Thunderbolts and Lightning: Very Very Frightening
 
如何利用 Docker 強化網站安全
如何利用 Docker 強化網站安全如何利用 Docker 強化網站安全
如何利用 Docker 強化網站安全
 
Generator Tricks for Systems Programmers
Generator Tricks for Systems ProgrammersGenerator Tricks for Systems Programmers
Generator Tricks for Systems Programmers
 
Authen Free Bsd6 2
Authen Free Bsd6 2Authen Free Bsd6 2
Authen Free Bsd6 2
 
ch8-pv1-the-virtual-filesystem
ch8-pv1-the-virtual-filesystemch8-pv1-the-virtual-filesystem
ch8-pv1-the-virtual-filesystem
 
[ElasticStack]What happens when you visualize servers exposed to the world?
[ElasticStack]What happens when you visualize servers exposed to the world? [ElasticStack]What happens when you visualize servers exposed to the world?
[ElasticStack]What happens when you visualize servers exposed to the world?
 
Smartcard Vulnerabilities In Modern Banking Malwaremalware
Smartcard Vulnerabilities In Modern Banking MalwaremalwareSmartcard Vulnerabilities In Modern Banking Malwaremalware
Smartcard Vulnerabilities In Modern Banking Malwaremalware
 
窺探職場上所需之資安專業技術與能力 Tdohconf
窺探職場上所需之資安專業技術與能力 Tdohconf窺探職場上所需之資安專業技術與能力 Tdohconf
窺探職場上所需之資安專業技術與能力 Tdohconf
 
Introduction to Gstreamer
Introduction to GstreamerIntroduction to Gstreamer
Introduction to Gstreamer
 
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_finalYuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
Yuki chen from_out_of_memory_to_remote_code_execution_pac_sec2017_final
 

Similar to Introduction to VeriFast @ Kyoto

Hands-on VeriFast with STM32 microcontroller
Hands-on VeriFast with STM32 microcontrollerHands-on VeriFast with STM32 microcontroller
Hands-on VeriFast with STM32 microcontrollerKiwamu Okabe
 
RTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future planRTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future planKiwamu Okabe
 
An OCaml newbie meets Camlp4 parser
An OCaml newbie meets Camlp4 parserAn OCaml newbie meets Camlp4 parser
An OCaml newbie meets Camlp4 parserKiwamu Okabe
 
Metasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCUMetasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCUKiwamu Okabe
 
Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...
Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...
Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...Liran Tal
 
Scripting for infosecs
Scripting for infosecsScripting for infosecs
Scripting for infosecsnancysuemartin
 
The Container Security Checklist
The Container Security Checklist The Container Security Checklist
The Container Security Checklist LibbySchulze
 
Emacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, againEmacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, againKiwamu Okabe
 
Development with Ansible & VMs
Development with Ansible & VMsDevelopment with Ansible & VMs
Development with Ansible & VMsJeff Schenck
 
Packaging in Python? Don't Roll the Dice.
Packaging in Python? Don't Roll the Dice.Packaging in Python? Don't Roll the Dice.
Packaging in Python? Don't Roll the Dice.ldaws
 
Environments line-up! Vagrant & Puppet 101
Environments line-up! Vagrant & Puppet 101Environments line-up! Vagrant & Puppet 101
Environments line-up! Vagrant & Puppet 101jelrikvh
 
[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺InfraEngineer
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as CodeKris Buytaert
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer ToolboxPablo Godel
 
Deploy Deep Learning Application with Azure Container Instance - Devdays2018
Deploy Deep Learning Application with Azure Container Instance - Devdays2018Deploy Deep Learning Application with Azure Container Instance - Devdays2018
Deploy Deep Learning Application with Azure Container Instance - Devdays2018Mia Chang
 
NetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16xNetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16xHank Preston
 
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial ApplicationsDevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applicationstlpinney
 

Similar to Introduction to VeriFast @ Kyoto (20)

Hands-on VeriFast with STM32 microcontroller
Hands-on VeriFast with STM32 microcontrollerHands-on VeriFast with STM32 microcontroller
Hands-on VeriFast with STM32 microcontroller
 
RTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future planRTOS application verified by VeriFast, and future plan
RTOS application verified by VeriFast, and future plan
 
An OCaml newbie meets Camlp4 parser
An OCaml newbie meets Camlp4 parserAn OCaml newbie meets Camlp4 parser
An OCaml newbie meets Camlp4 parser
 
Python environments
Python environmentsPython environments
Python environments
 
RPM experiments
RPM experimentsRPM experiments
RPM experiments
 
Metasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCUMetasepi team meeting #20: Start! ATS programming on MCU
Metasepi team meeting #20: Start! ATS programming on MCU
 
Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...
Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...
Black Clouds and Silver Linings in Node.js Security - Liran Tal Snyk OWASP Gl...
 
Scripting for infosecs
Scripting for infosecsScripting for infosecs
Scripting for infosecs
 
The Container Security Checklist
The Container Security Checklist The Container Security Checklist
The Container Security Checklist
 
Emacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, againEmacs verilog-mode is coming to Debian, again
Emacs verilog-mode is coming to Debian, again
 
Development with Ansible & VMs
Development with Ansible & VMsDevelopment with Ansible & VMs
Development with Ansible & VMs
 
Packaging in Python? Don't Roll the Dice.
Packaging in Python? Don't Roll the Dice.Packaging in Python? Don't Roll the Dice.
Packaging in Python? Don't Roll the Dice.
 
Environments line-up! Vagrant & Puppet 101
Environments line-up! Vagrant & Puppet 101Environments line-up! Vagrant & Puppet 101
Environments line-up! Vagrant & Puppet 101
 
Laravel Day / Deploy
Laravel Day / DeployLaravel Day / Deploy
Laravel Day / Deploy
 
[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺[MeetUp][2nd] 컭on턺
[MeetUp][2nd] 컭on턺
 
Repositories as Code
Repositories as CodeRepositories as Code
Repositories as Code
 
The Modern Developer Toolbox
The Modern Developer ToolboxThe Modern Developer Toolbox
The Modern Developer Toolbox
 
Deploy Deep Learning Application with Azure Container Instance - Devdays2018
Deploy Deep Learning Application with Azure Container Instance - Devdays2018Deploy Deep Learning Application with Azure Container Instance - Devdays2018
Deploy Deep Learning Application with Azure Container Instance - Devdays2018
 
NetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16xNetDevOps Developer Environments with Vagrant @ SCALE16x
NetDevOps Developer Environments with Vagrant @ SCALE16x
 
DevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial ApplicationsDevOps for Opensource Geospatial Applications
DevOps for Opensource Geospatial Applications
 

Recently uploaded

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 

Recently uploaded (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Introduction to VeriFast @ Kyoto

  • 1. Introduction to VeriFast @ KyotoIntroduction to VeriFast @ KyotoIntroduction to VeriFast @ KyotoIntroduction to VeriFast @ KyotoIntroduction to VeriFast @ Kyoto Kiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu OkabeKiwamu Okabe
  • 2. Setup before this presentationSetup before this presentationSetup before this presentationSetup before this presentationSetup before this presentation ☆ Plesse copy following files from the USB stick.☆ Plesse copy following files from the USB stick.☆ Plesse copy following files from the USB stick.☆ Plesse copy following files from the USB stick.☆ Plesse copy following files from the USB stick. chibios-verifast.tgz illegal_access.c verifast-nightly-osx.tar.gz verifast-nightly.tar.gz verifast-nightly.zip chibios-verifast.tgz illegal_access.c verifast-nightly-osx.tar.gz verifast-nightly.tar.gz verifast-nightly.zip chibios-verifast.tgz illegal_access.c verifast-nightly-osx.tar.gz verifast-nightly.tar.gz verifast-nightly.zip chibios-verifast.tgz illegal_access.c verifast-nightly-osx.tar.gz verifast-nightly.tar.gz verifast-nightly.zip chibios-verifast.tgz illegal_access.c verifast-nightly-osx.tar.gz verifast-nightly.tar.gz verifast-nightly.zip
  • 3. What's VeriFast?What's VeriFast?What's VeriFast?What's VeriFast?What's VeriFast? ☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast☆ https://github.com/verifast/verifast ☆ A verifier for single-threaded and multi- threaded C and Java language programs annotated with preconditions and postconditions written in separation logic. ☆ A verifier for single-threaded and multi- threaded C and Java language programs annotated with preconditions and postconditions written in separation logic. ☆ A verifier for single-threaded and multi- threaded C and Java language programs annotated with preconditions and postconditions written in separation logic. ☆ A verifier for single-threaded and multi- threaded C and Java language programs annotated with preconditions and postconditions written in separation logic. ☆ A verifier for single-threaded and multi- threaded C and Java language programs annotated with preconditions and postconditions written in separation logic. ☆ VeriFast avoids illegal memory accesses such like buffer overflow. ☆ VeriFast avoids illegal memory accesses such like buffer overflow. ☆ VeriFast avoids illegal memory accesses such like buffer overflow. ☆ VeriFast avoids illegal memory accesses such like buffer overflow. ☆ VeriFast avoids illegal memory accesses such like buffer overflow. ☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.☆ VeriFast is easy to use with the graphical IDE.
  • 4. Why use VeriFast? #1Why use VeriFast? #1Why use VeriFast? #1Why use VeriFast? #1Why use VeriFast? #1
  • 5. Why use VeriFast? #2Why use VeriFast? #2Why use VeriFast? #2Why use VeriFast? #2Why use VeriFast? #2
  • 6. Let's try to boot VeriFast!Let's try to boot VeriFast!Let's try to boot VeriFast!Let's try to boot VeriFast!Let's try to boot VeriFast! #�Windows $�unzip�verifast-nightly.zip $�./verifast-*/bin/vfide.exe #�Linux $�tar�xf�verifast-nightly.tar.gz $�./verifast-*/bin/vfide #�macOS $�tar�xf�verifast-nightly-osx.tar.gz $�./verifast-*/bin/vfide #�Windows $�unzip�verifast-nightly.zip $�./verifast-*/bin/vfide.exe #�Linux $�tar�xf�verifast-nightly.tar.gz $�./verifast-*/bin/vfide #�macOS $�tar�xf�verifast-nightly-osx.tar.gz $�./verifast-*/bin/vfide #�Windows $�unzip�verifast-nightly.zip $�./verifast-*/bin/vfide.exe #�Linux $�tar�xf�verifast-nightly.tar.gz $�./verifast-*/bin/vfide #�macOS $�tar�xf�verifast-nightly-osx.tar.gz $�./verifast-*/bin/vfide #�Windows $�unzip�verifast-nightly.zip $�./verifast-*/bin/vfide.exe #�Linux $�tar�xf�verifast-nightly.tar.gz $�./verifast-*/bin/vfide #�macOS $�tar�xf�verifast-nightly-osx.tar.gz $�./verifast-*/bin/vfide #�Windows $�unzip�verifast-nightly.zip $�./verifast-*/bin/vfide.exe #�Linux $�tar�xf�verifast-nightly.tar.gz $�./verifast-*/bin/vfide #�macOS $�tar�xf�verifast-nightly-osx.tar.gz $�./verifast-*/bin/vfide
  • 7. You will see VeriFast IDE windowYou will see VeriFast IDE windowYou will see VeriFast IDE windowYou will see VeriFast IDE windowYou will see VeriFast IDE window
  • 8. Open "illegal_access.c" fileOpen "illegal_access.c" fileOpen "illegal_access.c" fileOpen "illegal_access.c" fileOpen "illegal_access.c" file
  • 9. VeriFast finds an error, if verify itVeriFast finds an error, if verify itVeriFast finds an error, if verify itVeriFast finds an error, if verify itVeriFast finds an error, if verify it
  • 10. Why does the error occur?Why does the error occur?Why does the error occur?Why does the error occur?Why does the error occur? ☆ The malloc(3) may return NULL pointer.☆ The malloc(3) may return NULL pointer.☆ The malloc(3) may return NULL pointer.☆ The malloc(3) may return NULL pointer.☆ The malloc(3) may return NULL pointer. ☆ But "myAccount->balance" dereferences the pointer without checking NULL. ☆ But "myAccount->balance" dereferences the pointer without checking NULL. ☆ But "myAccount->balance" dereferences the pointer without checking NULL. ☆ But "myAccount->balance" dereferences the pointer without checking NULL. ☆ But "myAccount->balance" dereferences the pointer without checking NULL.
  • 11. Modify code, and verify itModify code, and verify itModify code, and verify itModify code, and verify itModify code, and verify it
  • 12. Example for RTOS application #1Example for RTOS application #1Example for RTOS application #1Example for RTOS application #1Example for RTOS application #1 $�export�PATH=`pwd`/verifast-*/bin:$PATH $�tar�xf�chibios-verifast.tgz $�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS- USB $�make�vfide $�export�PATH=`pwd`/verifast-*/bin:$PATH $�tar�xf�chibios-verifast.tgz $�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS- USB $�make�vfide $�export�PATH=`pwd`/verifast-*/bin:$PATH $�tar�xf�chibios-verifast.tgz $�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS- USB $�make�vfide $�export�PATH=`pwd`/verifast-*/bin:$PATH $�tar�xf�chibios-verifast.tgz $�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS- USB $�make�vfide $�export�PATH=`pwd`/verifast-*/bin:$PATH $�tar�xf�chibios-verifast.tgz $�cd�chibios-verifast/verifast_demo/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS- USB $�make�vfide
  • 13. Uncheck arithmetic overflowUncheck arithmetic overflowUncheck arithmetic overflowUncheck arithmetic overflowUncheck arithmetic overflow
  • 14. Verify RTOS applicationVerify RTOS applicationVerify RTOS applicationVerify RTOS applicationVerify RTOS application
  • 15. VeriFast finds error with bad mannerVeriFast finds error with bad mannerVeriFast finds error with bad mannerVeriFast finds error with bad mannerVeriFast finds error with bad manner
  • 16. The error is caused by system stateThe error is caused by system stateThe error is caused by system stateThe error is caused by system stateThe error is caused by system state
  • 17. ConclusionConclusionConclusionConclusionConclusion ☆ VeriFast is easy to setup and use.☆ VeriFast is easy to setup and use.☆ VeriFast is easy to setup and use.☆ VeriFast is easy to setup and use.☆ VeriFast is easy to setup and use. ☆ VeriFast has own graphical IDE.☆ VeriFast has own graphical IDE.☆ VeriFast has own graphical IDE.☆ VeriFast has own graphical IDE.☆ VeriFast has own graphical IDE. ☆ VeriFast safely uses pointers.☆ VeriFast safely uses pointers.☆ VeriFast safely uses pointers.☆ VeriFast safely uses pointers.☆ VeriFast safely uses pointers. ☆ VeriFast finds violation of RTOS system state.☆ VeriFast finds violation of RTOS system state.☆ VeriFast finds violation of RTOS system state.☆ VeriFast finds violation of RTOS system state.☆ VeriFast finds violation of RTOS system state.
  • 18. For more informationFor more informationFor more informationFor more informationFor more information In�English: "The�VeriFast�Program�Verifier:�A�Tutorial" https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf ##�In�Japanese �プログラム検証器�VeriFast:�チュートリアル� https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/ Tutorial.md "TPPMark2016�を解きながら学ぶ�VeriFast" https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast "VeriFast�Termination�Checking�Introduction(α)" https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a In�English: "The�VeriFast�Program�Verifier:�A�Tutorial" https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf ##�In�Japanese �プログラム検証器�VeriFast:�チュートリアル� https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/ Tutorial.md "TPPMark2016�を解きながら学ぶ�VeriFast" https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast "VeriFast�Termination�Checking�Introduction(α)" https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a In�English: "The�VeriFast�Program�Verifier:�A�Tutorial" https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf ##�In�Japanese �プログラム検証器�VeriFast:�チュートリアル� https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/ Tutorial.md "TPPMark2016�を解きながら学ぶ�VeriFast" https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast "VeriFast�Termination�Checking�Introduction(α)" https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a In�English: "The�VeriFast�Program�Verifier:�A�Tutorial" https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf ##�In�Japanese �プログラム検証器�VeriFast:�チュートリアル� https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/ Tutorial.md "TPPMark2016�を解きながら学ぶ�VeriFast" https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast "VeriFast�Termination�Checking�Introduction(α)" https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a In�English: "The�VeriFast�Program�Verifier:�A�Tutorial" https://people.cs.kuleuven.be/~bart.jacobs/verifast/tutorial.pdf ##�In�Japanese �プログラム検証器 VeriFast:�チュートリアル� https://github.com/jverifast-ug/translate/blob/master/Manual/Tutorial/ Tutorial.md "TPPMark2016�を解きながら学ぶ VeriFast" https://speakerdeck.com/eldesh/tppmark2016-wojie-kinagaraxue-bu-verifast "VeriFast�Termination�Checking�Introduction(α)" https://speakerdeck.com/eldesh/verifast-termination-checking-introduction-a
  • 19. Meetup at Osaka tomorrowMeetup at Osaka tomorrowMeetup at Osaka tomorrowMeetup at Osaka tomorrowMeetup at Osaka tomorrow ☆ "#静的コード解析の会 第4回@⼤阪"☆ "#静的コード解析の会 第4回@⼤阪"☆ "#静的コード解析の会 第4回@⼤阪"☆ "#静的コード解析の会 第4回@⼤阪"☆ "#静的コード解析の会 第4回@⼤阪" ☆ https://metasepi.connpass.com/event/55350/☆ https://metasepi.connpass.com/event/55350/☆ https://metasepi.connpass.com/event/55350/☆ https://metasepi.connpass.com/event/55350/☆ https://metasepi.connpass.com/event/55350/ ☆ Some talks about "static code analysis"☆ Some talks about "static code analysis"☆ Some talks about "static code analysis"☆ Some talks about "static code analysis"☆ Some talks about "static code analysis" ☆ Hands-on VeriFast with STM32 microcontroller☆ Hands-on VeriFast with STM32 microcontroller☆ Hands-on VeriFast with STM32 microcontroller☆ Hands-on VeriFast with STM32 microcontroller☆ Hands-on VeriFast with STM32 microcontroller
  • 20. 簡約!? λカ娘10 @ 参照透明な海を守る会簡約!? λカ娘10 @ 参照透明な海を守る会簡約!? λカ娘10 @ 参照透明な海を守る会簡約!? λカ娘10 @ 参照透明な海を守る会簡約!? λカ娘10 @ 参照透明な海を守る会 ☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b☆ コミックマーケット92 - 1日⽬ ⾦曜日 東た11b ☆ http://www.paraiso-lang.org/ikmsm/books/ c92.html ☆ http://www.paraiso-lang.org/ikmsm/books/ c92.html ☆ http://www.paraiso-lang.org/ikmsm/books/ c92.html ☆ http://www.paraiso-lang.org/ikmsm/books/ c92.html ☆ http://www.paraiso-lang.org/ikmsm/books/ c92.html *�第1章�モナドとひも *�第2章�⽮澤にこ先輩と⼀緒にモナドモナド! *�第3章�Coqダンジョン:�底抜けの壺の夢 *�第4章�IST(Internal�Set�Theory)�⼊門�(後編) *�第5章�静的コード解析はいいぞ! *�第6章�VeriFastチュートリアル *�第1章�モナドとひも *�第2章�⽮澤にこ先輩と⼀緒にモナドモナド! *�第3章�Coqダンジョン:�底抜けの壺の夢 *�第4章�IST(Internal�Set�Theory)�⼊門�(後編) *�第5章�静的コード解析はいいぞ! *�第6章�VeriFastチュートリアル *�第1章�モナドとひも *�第2章�⽮澤にこ先輩と⼀緒にモナドモナド! *�第3章�Coqダンジョン:�底抜けの壺の夢 *�第4章�IST(Internal�Set�Theory)�⼊門�(後編) *�第5章�静的コード解析はいいぞ! *�第6章�VeriFastチュートリアル *�第1章�モナドとひも *�第2章�⽮澤にこ先輩と⼀緒にモナドモナド! *�第3章�Coqダンジョン:�底抜けの壺の夢 *�第4章�IST(Internal�Set�Theory)�⼊門�(後編) *�第5章�静的コード解析はいいぞ! *�第6章�VeriFastチュートリアル *�第1章 モナドとひも *�第2章 ⽮澤にこ先輩と⼀緒にモナドモナド! *�第3章 Coqダンジョン:�底抜けの壺の夢 *�第4章 IST(Internal�Set�Theory)�⼊門�(後編) *�第5章 静的コード解析はいいぞ! *�第6章 VeriFastチュートリアル
  • 21. License of photosLicense of photosLicense of photosLicense of photosLicense of photos *�Creative�Commons�BBB�│�Flickr ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr ��https://www.flickr.com/photos/yto/8197280407/ ��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0 *�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr ��https://www.flickr.com/photos/pedrosz/34993395402/ ��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0 *�Creative�Commons�BBB�│�Flickr ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr ��https://www.flickr.com/photos/yto/8197280407/ ��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0 *�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr ��https://www.flickr.com/photos/pedrosz/34993395402/ ��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0 *�Creative�Commons�BBB�│�Flickr ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr ��https://www.flickr.com/photos/yto/8197280407/ ��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0 *�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr ��https://www.flickr.com/photos/pedrosz/34993395402/ ��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0 *�Creative�Commons�BBB�│�Flickr ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr ��https://www.flickr.com/photos/yto/8197280407/ ��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0 *�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr ��https://www.flickr.com/photos/pedrosz/34993395402/ ��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0 *�Creative�Commons�BBB�│�Flickr ��https://www.flickr.com/photos/steren/2732488224/ ��Copyright:�Steren�Giannini�/�License:�CC�BY�2.0 *�kindle�paperwhite�3G�│�Kindle�paperwhite...�│�Tatsuo�Yamashita�│�Flickr ��https://www.flickr.com/photos/yto/8197280407/ ��Copyright:�Tatsuo�Yamashita�/�License:�CC�BY�2.0 *�Kyoto�│�Japan�│�Pedro�Szekely�│�Flickr ��https://www.flickr.com/photos/pedrosz/34993395402/ ��Copyright:�Pedro�Szekely�/�License:�CC�BY-SA�2.0