Implementing Reverse Engineering
US$ 19.95
The publisher has enabled DRM protection, which means that you need to use the BookFusion iOS, Android or Web app to read this eBook. This eBook cannot be used outside of the BookFusion platform.
Description
Contents
Reviews
Language
English
ISBN
9789391030377
Cover Page
Title Page
Copyright Page
Dedication Page
About the Author
About the Reviewer
Acknowledgement
Preface
Errata
Table of Contents
1. Impact of Reverse Engineering
Structure
Objective
Introduction to Reverse Engineering
Importance of Reverse Engineering
Studying an existing design
Redeveloping an outdated or lost product
Security auditing
Finding sensitive data
Military espionage
Finding product vulnerabilities
Bounty for cyber enthusiasts
The Role of Reverse Engineering
Conclusion
2. Understanding Architecture of x86 Machines
Structure
Objective
Architecture of a Computing System
CPU
Memory
Input/output Devices
System Bus
Building blocks of a Computing System
Microprocessor
Memory
Registers
General Purpose Register
Segment Registers
Status Registers
Instruction Pointer Register
Concept of Stack
Caller Before Callee Call
Callee After Function Call
Callee Before Returning
Caller After Returning
Conclusion
3. Up and Running with Reverse Engineering Tools
Structure
Objective
Importance of tools in reverse engineering
Reverse engineering tools
Portable Executable Editors
CFF Explorer
Disassembler
Ghidra
Cutter
Debuggers
x32dbg
Conclusion
4. Walk Through on Assembly Instructions
Structure
Objective
Different assembly language instructions
Stack Instructions
PUSH
PUSHAD
PUSHFD
POP
POPAD
POPFD
RET
Data Transfer Instructions
MOV
LEA
XCHG
CMPXCHG
LAHF
SAHF
LAR
MOVSX
MOVZX
XLAT
MOVS
Arithmetic Instructions
AAA
AAS
AAD
AAM
ADC
ADD
CMP
DAA
DAS
DEC
DIV
IDIV
MUL
IMUL
INC
NEG
SBB
SUB
XADD
Program Execution Instructions
CALL
ENTER
LEAVE
INT
INTO
IRET
LOOP
LOOPE
LOOPNE
TEST
Branching Instructions
JMP
JZ
JNZ
JE
JNE
JG
JGE
JA
JAE
JL
JLE
JB
JBE
JO
JS
JECXZ
Bit Manipulation Instructions
BSWAP
AND
NOT
OR
XOR
RCL
RCR
ROL
ROR
SHR
SHL
SAR
SAL
SHLD
SHRD
Processor Control Instructions
CLC
CLD
CLI
CMC
ESC
LOCK
NOP
STC
STD
STI
String Instructions
CMPS/CMPSB/CMPSW
IN/INSB/INSW/INSD
OUT/OUTSB/OUTSW/OUTSD
LODS/LODSB/LODSW/LODSD
STOS/STOSB/STOSW
SCAS/SCASB/SCASW
MOVS/MOVSB/MOVSW
REP
REPE/REPZ
REPNE/REPNZ
Conclusion
5. Types of Code Calling Conventions
Structure
Objective
Understand types of calling conventions
CDECL
STDCALL
FASTCALL
Concept behind different calling conventions
CDECL
STDCALL
FASTCALL
Conclusion
6. Reverse Engineering Pattern of Basic Code
Structure
Objective
What is Code Optimization?
Empty function
Empty Function without Optimization
Empty Function with Optimization
Returning Value
Returning Value without Optimization
Returning Value with Optimization
Basic “Hello, World” Program
Basic “Hello, World” Program without Optimization
Basic “Hello, World” Program with Optimization
Conclusion
7. Reverse Engineering Pattern of Printf Program
Structure
Objective
Function printf with Integers
Function printf Printing Integers without Optimization
Function printf Printing Integers with Optimization
Function printf with Float
Function printf Printing Float without Optimization
Function printf Printing Float with Optimization
Function printf with char
Function printf Printing Char without Optimization
Function printf printing Char with Optimization
Conclusion
8. Reverse Engineering Pattern of Pointer Program
Structure
Objective
Pointers
Pointer without Optimization
Pointer with Optimization
Conclusion
9. Reverse Engineering Pattern of Decision Control Structure
Structure
Objective
If-else statement
If-else statement without Optimization
If-else statement with Optimization
Conclusion
10. Reverse Engineering Pattern of Loop Control Structure
Structure
Objective
While Condition
While condition without Optimization
While condition with Optimization
For Loop
For Loop without Optimization
For Loop with Optimization
Conclusion
11. Array Code Pattern in Reverse Engineering
Structure
Objective
Understanding an array
Array Loop without Optimization
Array Loop with Optimization
Conclusion
12. Structure Code Pattern in Reverse Engineering
Structure
Objective
Understanding of structures
Structure without Optimization
Structure with Optimization
Conclusion
13. Scanf Program Pattern in Reverse Engineering
Structure
Objective
Function scanf with Integers
Function scanf without Optimization
Function scanf with Optimization
Conclusion
14. Strcpy Program Pattern in Reverse Engineering
Structure
Objective
Strcpy
Strcpy without Optimization
Strcpy with Optimization
Conclusion
15. Simple Interest Code Pattern in Reverse Engineering
Structure
Objective
Program to Calculate Simple Interest
Calculate Simple Interest Without Optimization
Conclusion
16. Breaking Wannacry Ransomware With Reverse Engineering
Structure
Objective
Installation
Analyzing and Breaking Wannacry
Conclusion
17. Generate Pseudo Code From Binary File
Structure
Objective
Cutter Installation
Binary Analysis Using Cutter
Dashboard
Strings
Imports
Disassembly
Graph
Hexdump
Decompiler
Decrypting the Hidden URL
Conclusion
18. Fun With Windows Calculator Using Reverse Engineering
Structure
Objective
Reverse Engineering Calculator
Understanding the code flow with breakpoints
Finding a placeholder to call our code
Writing our code in the Code Cave
Patching the binary
Conclusion
Appendix
Macro
Procedure
npad
LSB and MSB
Signed and Unsigned
Unsigned
Signed
Bit Shifting
Logical bit shifting
Arithmetic bit shifting
ASCII
Unicode
Disable Address Space Layout Randomization
Index
Loading...