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

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Recently uploaded (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Swift Reversing by Ryan Stortz