SlideShare a Scribd company logo
1 of 49
Download to read offline
Swi$	Reversing	
Ryan	Stortz	
ShakaCon	2016
Presenta0on	Overview	
Part	1	
Swi5	Introduc:on	
	
Part	2	
Methodology	
Part	3	
Swi5	RE
Swi$	Introduc0on
Swi$	Language	
  Safe,	fast,	and	expressive	
  Closures	and	first-class	func:ons	
  Tuples	and	mul:ple	return	values	
  Generics	
  Fast	and	concise	itera:on	over	a	range	or	collec:on	
  Structs	that	support	methods,	extensions,	and	protocols	
  Func:onal	programming	paNerns,	e.g.,	map	and	filter	
  Powerful	error	handling	built-in	
  Advanced	control	flow	with	do,	guard,	defer,	and	repeat	keywords
Compiler	Architecture
1
1
1
1
Methodology	
1
Mo0va0on	
  Applica:on	Penetra:on	Tes:ng	
  Exploit	Development	
  Re-implementa:on	
  Interoperability	
  Build	Character	
1
Ini0al	Ques0ons	
  Toolchain	
•  What	tools	are	available	now?	
	
  Language	Core	
•  Is	it	message	based	like	Objec:ve-C	or	does	it	look	more	like	C/C++?	
•  Is	it	lazy	like	Haskell?	
•  What	na:ve	types	are	available?	
•  Which	storage	backs	which	types	of	variables?	
•  What	does	class	instan:a:on	look	like?	
•  How	are	Op:onals	unwrapped?	
	
  ABI	
•  How	does	Swi5	bridge	into	Objec:ve-C?	
•  How	does	it	represent	virtual	method	calls	under	the	hood?	
•  How	are	classes	and	structures	laid	out	in	memory?	
•  What	is	the	Swi5	calling	conven:on?	
1
Methodology:	Examples	
1
1
1
Swi$	RE:	Toolchain		
2
2
Toolchain	
  swi5c	
•  The	compiler	
  swi5	
•  The	compiler	REPL	
	
  swi5-demangle	
•  A	name	demangler	
2
2
swi$-demangle	
echo
__TFeRq_Ss14CollectionTypezqq_S_9GeneratorGVSs17IndexingGeneratorq__zqq_Ss9Indexabl
8_Elementqqq_S_9GeneratorSs13GeneratorType7Element_SsS_8generateuRq_S_zqq_S_9Genera
orGS0_q__zqq_S1_8_Elementqqq_S_9GeneratorS2_7Element_fq_FT_GS0_q__' | xcrun swift-
emangle
ext.Swift.Swift.CollectionType<A where A: Swift.CollectionType, A.Generator ==
wift.IndexingGenerator<A>, A._Element == A.Generator.Element>.generate <A where A:
wift.CollectionType, A.Generator == Swift.IndexingGenerator<A>, A._Element ==
.Generator.Element> (A)() -> Swift.IndexingGenerator<A>
echo
_TTSf4n_d___TTSg5C11CommandLine6Option___TZFSa28_allocateBufferUninitializedurfMGSa
__FSiGVSs12_ArrayBufferq__' | xcrun swift-demangle
unction signature specialization <Arg[1] = Dead> of generic specialization
CommandLine.Option> of static Swift.Array._allocateBufferUninitialized <A>
[A].Type)(Swift.Int) -> Swift._ArrayBuffer<A>
2
4CollectionTypezqq_S_9GeneratorGVSs17In
torq__zqq_Ss9Indexable8_Elementqqq_S_9G
GeneratorType7Element_SsS_8generateuRq_
eratorGS0_q__zqq_S1_8_Elementqqq_S_9Gen
ement_fq_FT_GS0_q__' | xcrun swift-
pand

Typezqq_S_9GeneratorGVSs17IndexingGeneratorq__zqq_Ss9Indexable8_
orSs13GeneratorType7Element_SsS_8generateuRq_S_zqq_S_9GeneratorG
tqqq_S_9GeneratorS2_7Element_fq_FT_GS0_q__

xt="Swift"
text="Swift"
er, text="CollectionType"
enericSignature
tGenericParamCount, index=1
tGenericConformanceRequirement
ndentGenericParamType, text="A"
dex, index=0
dex, index=0
ocol
dule, text="Swift"
entifier, text="CollectionType"
tGenericSameTypeRequirement
ndentMemberType, text="Generator"
pe
DependentGenericParamType, text="A"
d=Index, index=0
d=Index, index=0
pe
Protocol
d=Module, text="Swift"
d=Identifier, text="CollectionType"
dGenericStructure
pe
Structure
d=Module, text="Swift"
d=Identifier, text="IndexingGenerator"
peList
Type
d=DependentGenericParamType, text="A"
ind=Index, index=0
ind=Index, index=0
tGenericSameTypeRequirement
ndentMemberType, text="_Element"
kind=Type
kind=DependentGenericParamType, text="A"
kind=Index, index=0
kind=Index, index=0
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="Indexable"
kind=Type
kind=DependentMemberType, text="Element"
kind=Type
kind=DependentMemberType, text="Generator"
kind=Type
kind=DependentGenericParamType, text="A"
kind=Index, index=0
kind=Index, index=0
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="CollectionType"
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="GeneratorType"
kind=Identifier, text="generate"
kind=Type
kind=DependentGenericType
kind=DependentGenericSignature
kind=DependentGenericParamCount, index=1
kind=DependentGenericConformanceRequirement
kind=Type
kind=DependentGenericParamType, text="A"
kind=Index, index=0
kind=Index, index=0
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="CollectionType"
kind=DependentGenericSameTypeRequirement
kind=Type
kind=DependentMemberType, text="Generator"
kind=Type
kind=DependentGenericParamType, text="A"
kind=Index, index=0
kind=Index, index=0
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="CollectionType"
kind=Type
kind=BoundGenericStructure
kind=Type
kind=Structure
kind=Module, text="Swift"
kind=Identifier, text="IndexingGenerator"
kind=TypeList
kind=Type
kind=DependentGenericParamType, text="A"
kind=Index, index=0
kind=Index, index=0
kind=DependentGenericSameTypeRequirement
kind=Type
kind=DependentMemberType, text="_Element"
kind=Type
kind=DependentGenericParamType, text="A"
kind=Index, index=0
kind=Index, index=0
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="Indexable"
kind=Type
kind=DependentMemberType, text="Element"
kind=Type
kind=DependentMemberType, text="Generator"
kind=Type
kind=DependentGenericParamType, text="A"
kind=Index, index=0
kind=Index, index=0
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="CollectionType"
kind=Type
kind=Protocol
kind=Module, text="Swift"
kind=Identifier, text="GeneratorType"
kind=Type
kind=UncurriedFunctionType
kind=ArgumentTuple
kind=Type
kind=DependentGenericParamType, text="A"
kind=Index, index=0
kind=Index, index=0
kind=ReturnType
kind=Type
kind=FunctionType
kind=ArgumentTuple
kind=Type
kind=NonVariadicTuple
kind=ReturnType
kind=Type
kind=BoundGenericStructure
kind=Type
kind=Structure
kind=Module, text="Swift"
kind=Identifier, text="IndexingGener
kind=TypeList
kind=Type
kind=DependentGenericParamType, text
kind=Index, index=0
kind=Index, index=0

ext.Swift.Swift.CollectionType<A where A: Swift.
A.Generator == Swift.IndexingGenerator<A>, A._El
A.Generator.Element>.generate <A where A: Swift.
A.Generator == Swift.IndexingGenerator<A>, A._El
A.Generator.Element> (A)() -> Swift.IndexingGene
2
Ini0al	Ques0ons:	Revisited	(Toolchain)	
  Toolchain	
•  What	tools	are	available	now?	
	
2
swi5-demangle
Swi$	RE:	Language	Core	
2
Language	Core	
  Na:ve	types	
•  String,	Bool,	Int,	Int8,	Int16,	Int32,	Int64,	UInt,	
UInt8,	UInt16,	UInt32,	UInt64,	Float,	Float80,	
Double	
•  No	tagged	pointers	in	Swi5	(but	will	be	in	the	
Objc	bridges)	
  Control	Flow	
  Op:onals	
  Class	Instan:a:on	
2
Messages?	Laziness?	
2
Op0onals	
  Swi5	has	op:onals	which	alleviates	a	lot	of	null/nil	pointer	problems.
3
0000`00000002 00 00000000`00000000 01
alue = 2 ] [Op] [ Value = nil ] [Op]
case .Some(2):
let train = Train()
train.makeNoise()
case .Some(3):
let car = Car()
print(car.description)
default:
print("Invalid choice!")
}
read
pose Registers:
= 0x0000000000000002
= 0x0000000000000000
= 0x0000000000000002
= 0x0000000000000002
= 0x0000000100702b80
= 0x000000000000000a
= 0x00007fff5fbff9b0
= 0x00007fff5fbff840
= 0x0000000000000000
= 0x0000000000000000
= 0x00000001002ad201
= 0x00000001000dfcc0
= 0x0000000000000000
= 0x0000000000000000
= 0x0000000000000000
= 0x0000000000000000
= 0x000000010000148e classes`classes.main () -> () + 446 at
ft:50
= 0x0000000000000297
cs = 0x000000000000002b
fs = 0x0000000000000000
gs = 0x0000000000000000
(lldb) x/8i $pc
-> 0x10000148e: 48 39 d1 cmpq %rdx, %rcx
0x100001491: 75 40 jne 0x1000014d3 

0x100001493: e8 e8 02 00 00 callq 0x100001780 

0x100001498: 48 89 c7 movq %rax, %rdi
0x10000149b: e8 b0 fb ff ff callq 0x100001050
0x1000014a0: 48 89 45 b0 movq %rax, -0x50(%rb
0x1000014a4: 48 8b 38 movq (%rax), %rdi
0x1000014a7: 48 89 bd 20 ff ff ff movq %rdi, -0xe0(%rb
(lldb) x/40xg $rbp-0x28
0x7fff5fbff988: 0x0000000000000002 0x0000000000000300
3
3
Dynamic	Alloca0on	and	Class	Instan0a0on	
RefCounted *swift_allocObject(Metadata *type, size_t size, size_t alignMask);
3
3
3
Ini0al	Ques0ons:	Revisited	(Language	Core)
	
  Language	Core	
•  Is	it	message	based	like	Objec:ve-C	or	does	it	look	more	like	C/C++?	
•  Is	it	lazy	like	Haskell?	
•  What	na:ve	types	are	available?	
•  Which	storage	backs	which	types	of	variables?	
•  What	does	class	instan:a:on	look	like?	
•  How	are	Op:onals	unwrapped?	
3
C++	
No,	thank	God	
Stack,	Heap,	depends	on	life:me	
Slightly	different	than	C++	
With	a	bitwise	AND	
The	usuals
Swi$	RE:	ABI	
3
ABI	
  Objec:ve-C	Bridging	
  Virtual	func:on	calls	
  Ownership	rules	
  Calling	conven:on	
3
Objec0ve-C	Bridging	
3
4
Virtual	Func0on	Calls	
4
Ownership	and	Ownership	Rules	
  Swi5	is	full	ARC	
•  Automa:c	Reference	Coun:ng	
•  Everything	is	derived	from	a	few	base	types,	which	include	the	reference	
counts.	
  Func:ons	understand	their	argument	ownership	rules	
•  Dead	
•  Guaranteed	
•  Exploded	
•  Guaranteed	and	Exploded	
4
Calling	Conven0on	
  Swi5’s	approach:	
•  YOLO	
•  External	calls	are	RAX:RDX:RCX:R8	
	
  __swi5call	is	not	supported	in	HexRays	
  ScaNered	return	values	
•  Hexrays	has	a	lot	of	trouble	with	them	:(	
4
4
__swi$call	
Swift::String __usercall __spoils<rax,rdx,rcx,r8> func@<0:rdx,
8:rax, 16:rcx>(void *a1, void *a2)
Swift::String *__cdecl func(Swift::String *__return_ptr
__struct_ptr retstr, void *a1, void *a2);
4
Ini0al	Ques0ons:	Revisited	(ABI)	
  ABI	
•  How	does	Swi5	bridge	into	Objec:ve-C?	
•  How	does	it	represent	virtual	method	calls	under	the	hood?	
•  How	are	classes	and	structures	laid	out	in	memory?	
•  What	is	the	Swi5	calling	conven:on?	
4
Seamlessly	
Similar	to	C++	
Exactly	like	Objec:ve-c	
Yolo
Tools	
4
swi$.py	
  IDA	and	HexRays	plugin	
•  Rewrites	Hex-Rays	output	to	demangle	names	
•  Annotates	IDA	with	demangled	names	
•  Class	body	recovery	
•  Type	propaga:on	(Coming	Soon)	
•  Witness	table	recovery	(Coming	soon	–	Hopefully)	
Demo	
4
Ques0ons?	
Ryan	Stortz	
  Principal	Security	Researcher	at	Trail	of	Bits	
  Previously	at	Raytheon	SIGOVS	
Contact	Informa:on:	
  @withzombies	
  ryan@trailonits.com	
4

More Related Content

Viewers also liked

Anti-Reversing: A Cake Full of Onions by Richard Wartell
Anti-Reversing: A Cake Full of Onions by Richard WartellAnti-Reversing: A Cake Full of Onions by Richard Wartell
Anti-Reversing: A Cake Full of Onions by Richard WartellShakacon
 
Hunting Government Back Doors by Joseph Menn
Hunting Government Back Doors by Joseph MennHunting Government Back Doors by Joseph Menn
Hunting Government Back Doors by Joseph MennShakacon
 
When Encryption is Not Enough...Sumanth Naropanth, Chandra Prakash Gopalaiah ...
When Encryption is Not Enough...Sumanth Naropanth, Chandra Prakash Gopalaiah ...When Encryption is Not Enough...Sumanth Naropanth, Chandra Prakash Gopalaiah ...
When Encryption is Not Enough...Sumanth Naropanth, Chandra Prakash Gopalaiah ...Shakacon
 
Fruit vs Zombies: Defeat Non-jailbroken iOS Malware by Claud Xiao
Fruit vs Zombies:  Defeat Non-jailbroken iOS Malware by Claud XiaoFruit vs Zombies:  Defeat Non-jailbroken iOS Malware by Claud Xiao
Fruit vs Zombies: Defeat Non-jailbroken iOS Malware by Claud XiaoShakacon
 
Windows Systems & Code Signing Protection by Paul Rascagneres
Windows Systems & Code Signing Protection by Paul RascagneresWindows Systems & Code Signing Protection by Paul Rascagneres
Windows Systems & Code Signing Protection by Paul RascagneresShakacon
 
Let's Play Doctor....by Patrick Wardle
Let's Play Doctor....by Patrick WardleLet's Play Doctor....by Patrick Wardle
Let's Play Doctor....by Patrick WardleShakacon
 
The Search for the Perfect Door - Deviant Ollam
The Search for the Perfect Door - Deviant OllamThe Search for the Perfect Door - Deviant Ollam
The Search for the Perfect Door - Deviant OllamShakacon
 
Making a Scalable Automated Hacking System by Artem Dinaburg
Making a Scalable Automated Hacking System by Artem DinaburgMaking a Scalable Automated Hacking System by Artem Dinaburg
Making a Scalable Automated Hacking System by Artem DinaburgShakacon
 

Viewers also liked (8)

Anti-Reversing: A Cake Full of Onions by Richard Wartell
Anti-Reversing: A Cake Full of Onions by Richard WartellAnti-Reversing: A Cake Full of Onions by Richard Wartell
Anti-Reversing: A Cake Full of Onions by Richard Wartell
 
Hunting Government Back Doors by Joseph Menn
Hunting Government Back Doors by Joseph MennHunting Government Back Doors by Joseph Menn
Hunting Government Back Doors by Joseph Menn
 
When Encryption is Not Enough...Sumanth Naropanth, Chandra Prakash Gopalaiah ...
When Encryption is Not Enough...Sumanth Naropanth, Chandra Prakash Gopalaiah ...When Encryption is Not Enough...Sumanth Naropanth, Chandra Prakash Gopalaiah ...
When Encryption is Not Enough...Sumanth Naropanth, Chandra Prakash Gopalaiah ...
 
Fruit vs Zombies: Defeat Non-jailbroken iOS Malware by Claud Xiao
Fruit vs Zombies:  Defeat Non-jailbroken iOS Malware by Claud XiaoFruit vs Zombies:  Defeat Non-jailbroken iOS Malware by Claud Xiao
Fruit vs Zombies: Defeat Non-jailbroken iOS Malware by Claud Xiao
 
Windows Systems & Code Signing Protection by Paul Rascagneres
Windows Systems & Code Signing Protection by Paul RascagneresWindows Systems & Code Signing Protection by Paul Rascagneres
Windows Systems & Code Signing Protection by Paul Rascagneres
 
Let's Play Doctor....by Patrick Wardle
Let's Play Doctor....by Patrick WardleLet's Play Doctor....by Patrick Wardle
Let's Play Doctor....by Patrick Wardle
 
The Search for the Perfect Door - Deviant Ollam
The Search for the Perfect Door - Deviant OllamThe Search for the Perfect Door - Deviant Ollam
The Search for the Perfect Door - Deviant Ollam
 
Making a Scalable Automated Hacking System by Artem Dinaburg
Making a Scalable Automated Hacking System by Artem DinaburgMaking a Scalable Automated Hacking System by Artem Dinaburg
Making a Scalable Automated Hacking System by Artem Dinaburg
 

Similar to Swift Reversing by Ryan Stortz

Fortran & Link with Library & Brief Explanation of MKL BLAS
Fortran & Link with Library & Brief Explanation of MKL BLASFortran & Link with Library & Brief Explanation of MKL BLAS
Fortran & Link with Library & Brief Explanation of MKL BLASJongsu "Liam" Kim
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-optJeff Larkin
 
f37-book-intarch-pres-pt2.ppt
f37-book-intarch-pres-pt2.pptf37-book-intarch-pres-pt2.ppt
f37-book-intarch-pres-pt2.pptssuserf06014
 
f37-book-intarch-pres-pt2.ppt
f37-book-intarch-pres-pt2.pptf37-book-intarch-pres-pt2.ppt
f37-book-intarch-pres-pt2.pptVhhvf
 
JRuby 9000 - Optimizing Above the JVM
JRuby 9000 - Optimizing Above the JVMJRuby 9000 - Optimizing Above the JVM
JRuby 9000 - Optimizing Above the JVMCharles Nutter
 
Introduction to scala for a c programmer
Introduction to scala for a c programmerIntroduction to scala for a c programmer
Introduction to scala for a c programmerGirish Kumar A L
 
10 Things I Hate About Scala
10 Things I Hate About Scala10 Things I Hate About Scala
10 Things I Hate About ScalaMeir Maor
 
Ruby and rails - Advanced Training (Cybage)
Ruby and rails - Advanced Training (Cybage)Ruby and rails - Advanced Training (Cybage)
Ruby and rails - Advanced Training (Cybage)Gautam Rege
 
Introduction to coding using Python
Introduction to coding using PythonIntroduction to coding using Python
Introduction to coding using PythonDan D'Urso
 
What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)Moaid Hathot
 
Low Level Exploits
Low Level ExploitsLow Level Exploits
Low Level Exploitshughpearse
 
running stable diffusion on android
running stable diffusion on androidrunning stable diffusion on android
running stable diffusion on androidKoan-Sin Tan
 
Functional programming is the most extreme programming
Functional programming is the most extreme programmingFunctional programming is the most extreme programming
Functional programming is the most extreme programmingsamthemonad
 
Swift Ready for Production?
Swift Ready for Production?Swift Ready for Production?
Swift Ready for Production?Crispy Mountain
 
Power of linked list
Power of linked listPower of linked list
Power of linked listPeter Hlavaty
 
Cray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best PracticesCray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best PracticesJeff Larkin
 
ScalaDays 2013 Keynote Speech by Martin Odersky
ScalaDays 2013 Keynote Speech by Martin OderskyScalaDays 2013 Keynote Speech by Martin Odersky
ScalaDays 2013 Keynote Speech by Martin OderskyTypesafe
 

Similar to Swift Reversing by Ryan Stortz (20)

Fortran & Link with Library & Brief Explanation of MKL BLAS
Fortran & Link with Library & Brief Explanation of MKL BLASFortran & Link with Library & Brief Explanation of MKL BLAS
Fortran & Link with Library & Brief Explanation of MKL BLAS
 
May2010 hex-core-opt
May2010 hex-core-optMay2010 hex-core-opt
May2010 hex-core-opt
 
f37-book-intarch-pres-pt2.ppt
f37-book-intarch-pres-pt2.pptf37-book-intarch-pres-pt2.ppt
f37-book-intarch-pres-pt2.ppt
 
f37-book-intarch-pres-pt2.ppt
f37-book-intarch-pres-pt2.pptf37-book-intarch-pres-pt2.ppt
f37-book-intarch-pres-pt2.ppt
 
JRuby 9000 - Optimizing Above the JVM
JRuby 9000 - Optimizing Above the JVMJRuby 9000 - Optimizing Above the JVM
JRuby 9000 - Optimizing Above the JVM
 
Introduction to scala for a c programmer
Introduction to scala for a c programmerIntroduction to scala for a c programmer
Introduction to scala for a c programmer
 
10 Things I Hate About Scala
10 Things I Hate About Scala10 Things I Hate About Scala
10 Things I Hate About Scala
 
Start with swift
Start with swiftStart with swift
Start with swift
 
Ruby and rails - Advanced Training (Cybage)
Ruby and rails - Advanced Training (Cybage)Ruby and rails - Advanced Training (Cybage)
Ruby and rails - Advanced Training (Cybage)
 
Introduction to coding using Python
Introduction to coding using PythonIntroduction to coding using Python
Introduction to coding using Python
 
What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)What's coming to c# (Tel-Aviv, 2018)
What's coming to c# (Tel-Aviv, 2018)
 
Low Level Exploits
Low Level ExploitsLow Level Exploits
Low Level Exploits
 
running stable diffusion on android
running stable diffusion on androidrunning stable diffusion on android
running stable diffusion on android
 
Functional programming is the most extreme programming
Functional programming is the most extreme programmingFunctional programming is the most extreme programming
Functional programming is the most extreme programming
 
Swift Ready for Production?
Swift Ready for Production?Swift Ready for Production?
Swift Ready for Production?
 
Power of linked list
Power of linked listPower of linked list
Power of linked list
 
jsbasics-slide
jsbasics-slidejsbasics-slide
jsbasics-slide
 
Fixing the Java Serialization Mess
Fixing the Java Serialization Mess Fixing the Java Serialization Mess
Fixing the Java Serialization Mess
 
Cray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best PracticesCray XT Porting, Scaling, and Optimization Best Practices
Cray XT Porting, Scaling, and Optimization Best Practices
 
ScalaDays 2013 Keynote Speech by Martin Odersky
ScalaDays 2013 Keynote Speech by Martin OderskyScalaDays 2013 Keynote Speech by Martin Odersky
ScalaDays 2013 Keynote Speech by Martin Odersky
 

More from Shakacon

Web (dis)assembly
Web (dis)assemblyWeb (dis)assembly
Web (dis)assemblyShakacon
 
I can be apple and so can you
I can be apple and so can youI can be apple and so can you
I can be apple and so can youShakacon
 
Cloud forensics putting the bits back together
Cloud forensics putting the bits back togetherCloud forensics putting the bits back together
Cloud forensics putting the bits back togetherShakacon
 
Pwned in Translation - from Subtitles to RCE
Pwned in Translation - from Subtitles to RCEPwned in Translation - from Subtitles to RCE
Pwned in Translation - from Subtitles to RCEShakacon
 
Oversight: Exposing spies on macOS
Oversight: Exposing spies on macOS Oversight: Exposing spies on macOS
Oversight: Exposing spies on macOS Shakacon
 
Modern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layerModern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layerShakacon
 
A Decompiler for Blackhain-Based Smart Contracts Bytecode
A Decompiler for Blackhain-Based Smart Contracts BytecodeA Decompiler for Blackhain-Based Smart Contracts Bytecode
A Decompiler for Blackhain-Based Smart Contracts BytecodeShakacon
 
Honey, I Stole Your C2 Server: A Dive into Attacker Infrastructure
Honey, I Stole Your C2 Server:  A Dive into Attacker InfrastructureHoney, I Stole Your C2 Server:  A Dive into Attacker Infrastructure
Honey, I Stole Your C2 Server: A Dive into Attacker InfrastructureShakacon
 
Dock ir incident response in a containerized, immutable, continually deploy...
Dock ir   incident response in a containerized, immutable, continually deploy...Dock ir   incident response in a containerized, immutable, continually deploy...
Dock ir incident response in a containerized, immutable, continually deploy...Shakacon
 
Reviewing the Security of ASoC Drivers in Android Kernel
Reviewing the Security of ASoC Drivers in Android KernelReviewing the Security of ASoC Drivers in Android Kernel
Reviewing the Security of ASoC Drivers in Android KernelShakacon
 
Silent Protest: A Wearable Protest Network
Silent Protest:  A Wearable Protest NetworkSilent Protest:  A Wearable Protest Network
Silent Protest: A Wearable Protest NetworkShakacon
 
WiFi-Based IMSI Catcher
WiFi-Based IMSI CatcherWiFi-Based IMSI Catcher
WiFi-Based IMSI CatcherShakacon
 
Sad Panda Analysts: Devolving Malware
Sad Panda Analysts:  Devolving MalwareSad Panda Analysts:  Devolving Malware
Sad Panda Analysts: Devolving MalwareShakacon
 
reductio [ad absurdum]
reductio [ad absurdum]reductio [ad absurdum]
reductio [ad absurdum]Shakacon
 
XFLTReat: a new dimension in tunnelling
XFLTReat:  a new dimension in tunnellingXFLTReat:  a new dimension in tunnelling
XFLTReat: a new dimension in tunnellingShakacon
 
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco GrassiShakacon
 
0Day Hunting A.K.A. The Story of a Proper CPE Test by Balazs Bacsay
0Day Hunting A.K.A. The Story of a Proper CPE Test by Balazs Bacsay0Day Hunting A.K.A. The Story of a Proper CPE Test by Balazs Bacsay
0Day Hunting A.K.A. The Story of a Proper CPE Test by Balazs BacsayShakacon
 
Richard wartell malware is hard. let's go shopping!!
Richard wartell   malware is hard.  let's go shopping!!Richard wartell   malware is hard.  let's go shopping!!
Richard wartell malware is hard. let's go shopping!!Shakacon
 

More from Shakacon (20)

Web (dis)assembly
Web (dis)assemblyWeb (dis)assembly
Web (dis)assembly
 
Macdoored
MacdooredMacdoored
Macdoored
 
I can be apple and so can you
I can be apple and so can youI can be apple and so can you
I can be apple and so can you
 
Cloud forensics putting the bits back together
Cloud forensics putting the bits back togetherCloud forensics putting the bits back together
Cloud forensics putting the bits back together
 
Pwned in Translation - from Subtitles to RCE
Pwned in Translation - from Subtitles to RCEPwned in Translation - from Subtitles to RCE
Pwned in Translation - from Subtitles to RCE
 
Oversight: Exposing spies on macOS
Oversight: Exposing spies on macOS Oversight: Exposing spies on macOS
Oversight: Exposing spies on macOS
 
Modern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layerModern Reconnaissance Phase on APT - protection layer
Modern Reconnaissance Phase on APT - protection layer
 
Shamoon
ShamoonShamoon
Shamoon
 
A Decompiler for Blackhain-Based Smart Contracts Bytecode
A Decompiler for Blackhain-Based Smart Contracts BytecodeA Decompiler for Blackhain-Based Smart Contracts Bytecode
A Decompiler for Blackhain-Based Smart Contracts Bytecode
 
Honey, I Stole Your C2 Server: A Dive into Attacker Infrastructure
Honey, I Stole Your C2 Server:  A Dive into Attacker InfrastructureHoney, I Stole Your C2 Server:  A Dive into Attacker Infrastructure
Honey, I Stole Your C2 Server: A Dive into Attacker Infrastructure
 
Dock ir incident response in a containerized, immutable, continually deploy...
Dock ir   incident response in a containerized, immutable, continually deploy...Dock ir   incident response in a containerized, immutable, continually deploy...
Dock ir incident response in a containerized, immutable, continually deploy...
 
Reviewing the Security of ASoC Drivers in Android Kernel
Reviewing the Security of ASoC Drivers in Android KernelReviewing the Security of ASoC Drivers in Android Kernel
Reviewing the Security of ASoC Drivers in Android Kernel
 
Silent Protest: A Wearable Protest Network
Silent Protest:  A Wearable Protest NetworkSilent Protest:  A Wearable Protest Network
Silent Protest: A Wearable Protest Network
 
WiFi-Based IMSI Catcher
WiFi-Based IMSI CatcherWiFi-Based IMSI Catcher
WiFi-Based IMSI Catcher
 
Sad Panda Analysts: Devolving Malware
Sad Panda Analysts:  Devolving MalwareSad Panda Analysts:  Devolving Malware
Sad Panda Analysts: Devolving Malware
 
reductio [ad absurdum]
reductio [ad absurdum]reductio [ad absurdum]
reductio [ad absurdum]
 
XFLTReat: a new dimension in tunnelling
XFLTReat:  a new dimension in tunnellingXFLTReat:  a new dimension in tunnelling
XFLTReat: a new dimension in tunnelling
 
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
50 Shades of Fuzzing by Peter Hlavaty & Marco Grassi
 
0Day Hunting A.K.A. The Story of a Proper CPE Test by Balazs Bacsay
0Day Hunting A.K.A. The Story of a Proper CPE Test by Balazs Bacsay0Day Hunting A.K.A. The Story of a Proper CPE Test by Balazs Bacsay
0Day Hunting A.K.A. The Story of a Proper CPE Test by Balazs Bacsay
 
Richard wartell malware is hard. let's go shopping!!
Richard wartell   malware is hard.  let's go shopping!!Richard wartell   malware is hard.  let's go shopping!!
Richard wartell malware is hard. let's go shopping!!
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Swift Reversing by Ryan Stortz