Reverse Engineering (EVO 2008)
-
Upload
tudor-girba -
Category
Education
-
view
2.188 -
download
5
description
Transcript of Reverse Engineering (EVO 2008)
![Page 1: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/1.jpg)
Reverse Engineering
Tudor Gîrbawww.tudorgirba.com
![Page 2: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/2.jpg)
Chikofky & Cross, 90
Reverse engineering is analyzing a subject system to:
identify components and their relationships, andcreate more abstract representations.
![Page 3: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/3.jpg)
Why reverse engineer?
![Page 4: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/4.jpg)
The B29 bomber
![Page 5: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/5.jpg)
In 1944, 3 B29s had to land in Russia
![Page 6: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/6.jpg)
Requirement: Copy everything, fast!
![Page 7: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/7.jpg)
![Page 8: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/8.jpg)
![Page 9: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/9.jpg)
![Page 10: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/10.jpg)
![Page 11: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/11.jpg)
Disassemble
![Page 12: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/12.jpg)
Disassemble Run
![Page 13: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/13.jpg)
Disassemble Run
Test and compare
![Page 14: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/14.jpg)
![Page 15: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/15.jpg)
Tupolev TU-4: 105,000 pieces assembled in 2 years
![Page 16: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/16.jpg)
Why reverse engineer software?
![Page 17: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/17.jpg)
forward engineering
actual development }
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
![Page 18: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/18.jpg)
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
actual development
![Page 19: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/19.jpg)
program transformation
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
![Page 20: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/20.jpg)
program transformation
reve
rse
engin
eerin
gforward engineering
}
{
}
{
}
{
}
{}
{
}
{
}
{}
{
}
{
Reengineering life cycle
![Page 21: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/21.jpg)
reve
rse
engin
eerin
g
}
{
}
{
}
{}
{
}
{Setting direction
First contact
Initial understanding
Detailed model capture
![Page 22: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/22.jpg)
reve
rse
engin
eerin
g
}
{
}
{
}
{}
{
}
{Setting direction
First contact
Initial understanding
Detailed model capture
patterns
patterns
patterns
patterns
![Page 23: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/23.jpg)
short intermezzo
What are patterns?
![Page 24: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/24.jpg)
reve
rse
engin
eerin
g
}
{
}
{
}
{}
{
}
{
Setting directionFirst contact
Initial understanding
Detailed model capture
![Page 25: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/25.jpg)
Yogi Berra
You got to be careful if you don't know where you're going, because you might not get there.
![Page 26: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/26.jpg)
Setting direction patterns
Agreeon maxims
Appointa navigator
Speak to theround table
Most valuablefirst
If it ain’t brokedon’t fix it
Whereto start
Whatto do
Fix problemsnot symptoms
Keep it simple
What notto do
How to do
Setdirection
Maintain direction
Coordinate direction
![Page 27: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/27.jpg)
reve
rse
engin
eerin
g
}
{
}
{
}
{}
{
}
{Setting direction
First contactInitial understanding
Detailed model capture
![Page 28: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/28.jpg)
Interview during demo Chat with maintainers
What is the usage?
What are the bugs?
What do you like?
What is the history?
What is the process?
What are the problems?
![Page 29: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/29.jpg)
Interview during demo Chat with maintainers
Remember that they are all humans:
they complain
they are enthusiastic
they protect their jobs
What is the usage?
What are the bugs?
What do you like?
What is the history?
What is the process?
What are the problems?
![Page 30: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/30.jpg)
![Page 31: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/31.jpg)
Read all code in one hour
![Page 32: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/32.jpg)
Read all code in one hour ?
![Page 33: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/33.jpg)
Read all code in one hour 100’000 lines of code
?
![Page 34: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/34.jpg)
Read all code in one hour 100’000 lines of code
* 2 = 200’000 seconds
?
![Page 35: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/35.jpg)
Read all code in one hour 100’000 lines of code
* 2 = 200’000 seconds
/ 3600 = 56 hours
?
![Page 36: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/36.jpg)
Read all code in one hour 100’000 lines of code
* 2 = 200’000 seconds
/ 3600 = 56 hours
/ 8 = 7 days
?
![Page 37: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/37.jpg)
ArgoUML
![Page 38: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/38.jpg)
Moose
![Page 39: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/39.jpg)
Woody Allen
I took a course in speed reading and read “War and Peace” in twenty minutes.
It’s about Russia.
![Page 40: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/40.jpg)
![Page 41: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/41.jpg)
First contact patterns
Chat withmaintainers
Interview during demo
Talk withdevelopers
Talk withusers
Read all codein one hour
Skimdocumentation
Do a mockinstallation
Readthe code
Compilethe code
Read about the code
Talk about it
Verify what you hear
![Page 42: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/42.jpg)
reve
rse
engin
eerin
g
}
{
}
{
}
{}
{
}
{Setting direction
First contact
Initial understandingDetailed model capture
![Page 43: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/43.jpg)
Speculate about design
Graph
Layout
EdgeNode
Abstract
Item
![Page 44: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/44.jpg)
Identify exceptional entities
![Page 45: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/45.jpg)
Identify exceptional entities
for i in $( ls ); do echo `wc -l $i` >> tempdonesort -nr temp | head -10
![Page 46: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/46.jpg)
Initial understanding patterns
Speculateabout design
Analyzepersistent data
Studyexceptional entities
Bottom up
Top down
Iteration
Recoverdatabase
Identifyproblems
Recoverdesign
![Page 47: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/47.jpg)
reve
rse
engin
eerin
g
}
{
}
{
}
{}
{
}
{Setting direction
First contact
Initial understanding
Detailed model capture
![Page 48: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/48.jpg)
To understand: refactor
![Page 49: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/49.jpg)
To understand: refactorwrite tests
![Page 50: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/50.jpg)
To understand: refactorwrite testsstep through execution
![Page 51: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/51.jpg)
Learn from the past
![Page 52: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/52.jpg)
Detailed model capture patternsTie code and
questions
Exposecontracts
Refactorto understand
Step throughexecution
Look forthe contracts
Write teststo understand
Learn fromthe past
Exposedesign
Track yourunderstanding
Encodeassumptions
Exposecollaborations
Exposeevolution
![Page 53: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/53.jpg)
reve
rse
engin
eerin
g
}
{
}
{
}
{}
{
}
{Setting direction
First contact
Initial understanding
Detailed model capture
![Page 54: Reverse Engineering (EVO 2008)](https://reader031.fdocuments.in/reader031/viewer/2022020105/559625d31a28ab754a8b4597/html5/thumbnails/54.jpg)
Tudor Gîrbawww.tudorgirba.com
creativecommons.org/licenses/by/3.0/