SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Reverse engineering

By :
Sitanshu Dubey
Security analyst and researcher
Hicube Infosec Pvt. Ltd.
E-mail: sitanshu@hicubes.com
Reverse engineering
    Content
-   Introduction
-   Needs
-   Assembly Language basics
-   Debuggers
Reverse engineering
  Introduction
- Reverse Engineering is a process of redesigning an
  existing product to improve and broaden its
  function, add quality and to increase its useful life.
  Also and important additional goal is to reduce
  manufacturing costs of the new product making it
  competitive in the market place.
Reverse engineering
Reverse engg. Vs Forward engg.
     Forward Engineering          Reverse Engineering

                   Requirements


                       Design


                    Source Code


                      Behavior
Reverse engineering
  Needs
- Reverse engineering is used for testing
  purpose.
- It is used for updating and adding new
  features.
- Migration to another hardware/software
  platform.
- Facilitating software reuse.
Reverse engineering
  Assembly Language basics
- Assembly language is the most basic
  programming language available for any
  processor. With assembly language, a
  programmer works with the operations which
  are implemented directly on the physical CPU.
Reverse engineering
  Assembly Language basics
- Every code of a software converts in assembly
  language whether it is written in java or c, or c++
  or in any high level language.
- Assembly language contains mnimonics for
  performing an operation like
  MOV AX, 47104
  MOV DS, AX
  MOV [3998], 36
  INT 32
Reverse Engineering
  Flags
- Flags are single bits which indicate the status of
  something. There are 32 different flags. You will
  mostly need only 3 of them in reversing. The Z-
  Flag, the O-Flag and the C-Flag.
- A flag can only be '0' or '1', meaning ‘ok' or ‘not ok'.
Reverse Engineering
  Segments and offsets
- A segment is a piece in memory where
  instructions (CS), data (DS), stack (SS) or just an
  extra segment (ES) are stored. Every segment is
  divided in 'offsets'. In 32-bits applications
  (Windows 95/98/ME/2000), these offsets are
  numbered from 00000000 to FFFFFFFF.
- A segment is like a page in a book.
- And an offset is like a specific line at that page.
Reverse Engineering
    Registers
-   Generally 32 bit / 64 bit windows supports mailly
    9 registers.
-   EAX : Extended Accumulator Register
-   EBX : Base Register
-   ECX : Counter Register
-   EDX : Data Register
-   ESI : Source Index
-   EDI : Destination Index
Reverse Engineering
  Pointer Registers
- EBP : Base Pointer
- ESP : Stack Pointer
- EIP : Instruction Pointer
Reverse Engineering
  Jumps
- Different jump statements:
  JNZ      Jump if not zero
  JMP      Jumps always
  JLE      Jump if (signed) less or equal
  JE       Jump if equal
Reverse Engineering
  Debuggers
- A debugger or debugging tool is a computer
  program that is used to test and debug other
  programs .
- Debuggers show the assembly code of the
  program.
Reverse Engineering
  Debuggers
- Widely used Debuggers
  i) Ollydbg
  ii) Windbg
  iii) Hdasm
Reverse Engineering
      Ollydbg
Reverse Engineering
      Windbg
Reverse Engineering
       Hdasm
Packing & Unpacking
Packing & Unpacking
    Content
-   Introduction
-   Need
-   Objective Unpacking
-   Useful Tools
-   Conclusion
Packing & Unpacking
  Introduction
  Packing
- Packing is a process of protecting the code
  from the malicious users who use reverse
  engineering for malicious purpose such as
  braking security, braking copyrights etc..
Packing & Unpacking
  Introduction
  Unpacking
- Unpacking is the technique by which one can
  remove packers or protectors.
Packing & Unpacking
  Need
- Packing is very important to protect the codes.
- If a malicious person become successful to
  brake the packer or protector then he can do
  normal reverse engineering to brake the code.
  That’s why its very important to use good
  protectors/packers.
Packing & Unpacking
  Objective Unpacking
- Packers 'pack' or 'compress' a program much
  the same way as compressor, packers then
  attach their own decryption / loading stub
  which 'unpacks' the program before resuming
  execution normally at the programs original
  entry point.
Packing & Unpacking
  Objective Unpacking
- The main objective of unpacking a software is
  to get the OEP (Original Entry Point) of the
  software.
- Basically when a packer compress the
  application, the entry point become change to
  the entry point of packer rather then
  application.
Packing & Unpacking
  Objective Unpacking
- OEP is refer to the entry point of application.
- If one can get the OEP then he can modify the
  code.
Packing & Unpacking
  Useful Tools
- Packers:
  i) Armadillo
  ii) ASPack & ASProtect
  iii) PECompact
  iv) WWPack(32) etc..
Packing & Unpacking
  Useful Tools
- Unpackers
  i) PEid
  ii) ArmKiller
  iii) UnAspack
  iv) UnShrinker etc..
Packing & Unpacking
  Useful Tools
- PEiD detects most common packers, crypters
  and compilers for PE files. It can currently
  detect more than 470 different signatures in
  PE files.
- It is useful to get the packer’s name which
  helps to unpacking because for different
  packer we have to use different techniques.
Packing & Unpacking
  PE files
- The PE ("portable executable") file format is
  the format of executable binaries (DLLs and
  programs) for windows.
- It can also be used for object files and
  libraries.
Reverse Engineering
    Conclusion
-   Reverse Engineering is a new research area
    among software maintenance.
-   RE includes activities of understanding the
    system and recovery info from system.
-   Program understanding is the most important
    subset of Reverse Engineering.
-   Discovery of abstraction is key issue.

Weitere ähnliche Inhalte

Was ist angesagt?

Software Reverse Engineering in a Security Context (ncrisc 2018)
Software Reverse Engineering in a Security Context (ncrisc 2018)Software Reverse Engineering in a Security Context (ncrisc 2018)
Software Reverse Engineering in a Security Context (ncrisc 2018)Lokendra Rawat
 
Reverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureReverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureDharmalingam Ganesan
 
Reverse Engineering
Reverse EngineeringReverse Engineering
Reverse Engineeringsiddu019
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineeringParminder Singh
 
Overview of digital design with Verilog HDL
Overview of digital design with Verilog HDLOverview of digital design with Verilog HDL
Overview of digital design with Verilog HDLanand hd
 
Reverse engineering in software engineering vaibhav
Reverse engineering in software engineering vaibhavReverse engineering in software engineering vaibhav
Reverse engineering in software engineering vaibhavMani Kanth
 
Logic synthesis using Verilog HDL
Logic synthesis using Verilog HDLLogic synthesis using Verilog HDL
Logic synthesis using Verilog HDLanand hd
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewEditor IJCATR
 
Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereAdaCore
 
9 d57105 hardware software co design
9 d57105  hardware software co design9 d57105  hardware software co design
9 d57105 hardware software co designVinod Kumar Gorrepati
 
Standard embedded c
Standard embedded cStandard embedded c
Standard embedded cTam Thanh
 
Data Analysis tool by EBA
Data Analysis tool by EBAData Analysis tool by EBA
Data Analysis tool by EBAebaykal
 
Project P erts2012
Project P erts2012Project P erts2012
Project P erts2012AdaCore
 
Integrating Proof and Testing in Verification Strategies for Safety Critical ...
Integrating Proof and Testing in Verification Strategies for Safety Critical ...Integrating Proof and Testing in Verification Strategies for Safety Critical ...
Integrating Proof and Testing in Verification Strategies for Safety Critical ...AdaCore
 

Was ist angesagt? (20)

Software Reverse Engineering in a Security Context (ncrisc 2018)
Software Reverse Engineering in a Security Context (ncrisc 2018)Software Reverse Engineering in a Security Context (ncrisc 2018)
Software Reverse Engineering in a Security Context (ncrisc 2018)
 
Reverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureReverse Engineering of Software Architecture
Reverse Engineering of Software Architecture
 
Reverse Engineering
Reverse EngineeringReverse Engineering
Reverse Engineering
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
 
Overview of digital design with Verilog HDL
Overview of digital design with Verilog HDLOverview of digital design with Verilog HDL
Overview of digital design with Verilog HDL
 
Reverse engineering in software engineering vaibhav
Reverse engineering in software engineering vaibhavReverse engineering in software engineering vaibhav
Reverse engineering in software engineering vaibhav
 
Intsoc2
Intsoc2Intsoc2
Intsoc2
 
Logic synthesis using Verilog HDL
Logic synthesis using Verilog HDLLogic synthesis using Verilog HDL
Logic synthesis using Verilog HDL
 
Pf Day4
Pf Day4Pf Day4
Pf Day4
 
2007 - nxp chliopanos
2007 - nxp chliopanos2007 - nxp chliopanos
2007 - nxp chliopanos
 
Reverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature ReviewReverse Engineering for Documenting Software Architectures, a Literature Review
Reverse Engineering for Documenting Software Architectures, a Literature Review
 
ctchou-resume
ctchou-resumectchou-resume
ctchou-resume
 
Safe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get ThereSafe and Reliable Embedded Linux Programming: How to Get There
Safe and Reliable Embedded Linux Programming: How to Get There
 
ctchou-resume
ctchou-resumectchou-resume
ctchou-resume
 
9 d57105 hardware software co design
9 d57105  hardware software co design9 d57105  hardware software co design
9 d57105 hardware software co design
 
Standard embedded c
Standard embedded cStandard embedded c
Standard embedded c
 
3rd 3DDRESD: OSyRIS
3rd 3DDRESD: OSyRIS3rd 3DDRESD: OSyRIS
3rd 3DDRESD: OSyRIS
 
Data Analysis tool by EBA
Data Analysis tool by EBAData Analysis tool by EBA
Data Analysis tool by EBA
 
Project P erts2012
Project P erts2012Project P erts2012
Project P erts2012
 
Integrating Proof and Testing in Verification Strategies for Safety Critical ...
Integrating Proof and Testing in Verification Strategies for Safety Critical ...Integrating Proof and Testing in Verification Strategies for Safety Critical ...
Integrating Proof and Testing in Verification Strategies for Safety Critical ...
 

Andere mochten auch

reverse engineering
reverse engineeringreverse engineering
reverse engineeringayush_nitt
 
Measurement System Analysis
Measurement System AnalysisMeasurement System Analysis
Measurement System AnalysisRonald Shewchuk
 
Tools for capacity planning, measurement of capacity, capacity planning process
Tools for capacity planning, measurement of capacity, capacity planning processTools for capacity planning, measurement of capacity, capacity planning process
Tools for capacity planning, measurement of capacity, capacity planning processRohan Monis
 
intra and inter personal relations
intra and inter personal relationsintra and inter personal relations
intra and inter personal relationsGanesh Sahu
 
Legacy Software Maintenance And Management
Legacy Software Maintenance And ManagementLegacy Software Maintenance And Management
Legacy Software Maintenance And ManagementValueCoders
 
Measuring capacity lesson3
Measuring capacity lesson3Measuring capacity lesson3
Measuring capacity lesson3Lidia Marie
 
Service Operation - Manajemen Layanan Teknologi Informasi
Service Operation - Manajemen Layanan Teknologi InformasiService Operation - Manajemen Layanan Teknologi Informasi
Service Operation - Manajemen Layanan Teknologi InformasiMuhammad Idil Haq Amir
 
Unit 1 Service Operations Management
Unit 1 Service Operations ManagementUnit 1 Service Operations Management
Unit 1 Service Operations ManagementGopinath Guru
 
Capacity Planning with Free Tools
Capacity Planning with Free ToolsCapacity Planning with Free Tools
Capacity Planning with Free ToolsAdrian Cockcroft
 
Service Operation Processes
Service Operation ProcessesService Operation Processes
Service Operation Processesnuwulang
 
Service Operation
Service OperationService Operation
Service OperationPeleg
 
ITIL Service Design dan Service Operation
ITIL Service Design dan Service OperationITIL Service Design dan Service Operation
ITIL Service Design dan Service OperationMuh Husain noor Hidayat
 
10. measurement system analysis (msa)
10. measurement system analysis (msa)10. measurement system analysis (msa)
10. measurement system analysis (msa)Hakeem-Ur- Rehman
 
Assembly Line Balancing -Example
Assembly Line Balancing -ExampleAssembly Line Balancing -Example
Assembly Line Balancing -ExampleJoseph Konnully
 
Capacity Requirement Planning
Capacity Requirement PlanningCapacity Requirement Planning
Capacity Requirement Planningsenthil.G
 

Andere mochten auch (20)

reverse engineering
reverse engineeringreverse engineering
reverse engineering
 
Capacity 1
Capacity 1Capacity 1
Capacity 1
 
Measurement System Analysis
Measurement System AnalysisMeasurement System Analysis
Measurement System Analysis
 
Tools for capacity planning, measurement of capacity, capacity planning process
Tools for capacity planning, measurement of capacity, capacity planning processTools for capacity planning, measurement of capacity, capacity planning process
Tools for capacity planning, measurement of capacity, capacity planning process
 
Reverse engineering
Reverse engineeringReverse engineering
Reverse engineering
 
intra and inter personal relations
intra and inter personal relationsintra and inter personal relations
intra and inter personal relations
 
Legacy Software Maintenance And Management
Legacy Software Maintenance And ManagementLegacy Software Maintenance And Management
Legacy Software Maintenance And Management
 
Measuring capacity lesson3
Measuring capacity lesson3Measuring capacity lesson3
Measuring capacity lesson3
 
Service Operation - Manajemen Layanan Teknologi Informasi
Service Operation - Manajemen Layanan Teknologi InformasiService Operation - Manajemen Layanan Teknologi Informasi
Service Operation - Manajemen Layanan Teknologi Informasi
 
Unit 1 Service Operations Management
Unit 1 Service Operations ManagementUnit 1 Service Operations Management
Unit 1 Service Operations Management
 
Line balancing
Line balancing Line balancing
Line balancing
 
Capacity Planning with Free Tools
Capacity Planning with Free ToolsCapacity Planning with Free Tools
Capacity Planning with Free Tools
 
Facility layout
Facility layoutFacility layout
Facility layout
 
Capacity Management
Capacity ManagementCapacity Management
Capacity Management
 
Service Operation Processes
Service Operation ProcessesService Operation Processes
Service Operation Processes
 
Service Operation
Service OperationService Operation
Service Operation
 
ITIL Service Design dan Service Operation
ITIL Service Design dan Service OperationITIL Service Design dan Service Operation
ITIL Service Design dan Service Operation
 
10. measurement system analysis (msa)
10. measurement system analysis (msa)10. measurement system analysis (msa)
10. measurement system analysis (msa)
 
Assembly Line Balancing -Example
Assembly Line Balancing -ExampleAssembly Line Balancing -Example
Assembly Line Balancing -Example
 
Capacity Requirement Planning
Capacity Requirement PlanningCapacity Requirement Planning
Capacity Requirement Planning
 

Ähnlich wie Reverse engineering

Reverse code engineering
Reverse code engineeringReverse code engineering
Reverse code engineeringKrishs Patil
 
WhitePaperTemplate
WhitePaperTemplateWhitePaperTemplate
WhitePaperTemplateJo Marques
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentIJERD Editor
 
Embedded programming Embedded programming (1).pptx
Embedded programming Embedded programming (1).pptxEmbedded programming Embedded programming (1).pptx
Embedded programming Embedded programming (1).pptxlematadese670
 
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...Arti Parab Academics
 
RISC-V growth and successes in technology and industry - embedded world 2021
RISC-V growth and successes in technology and industry - embedded world 2021RISC-V growth and successes in technology and industry - embedded world 2021
RISC-V growth and successes in technology and industry - embedded world 2021RISC-V International
 
Stack-Based Buffer Overflows
Stack-Based Buffer OverflowsStack-Based Buffer Overflows
Stack-Based Buffer OverflowsDaniel Tumser
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)ijceronline
 
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS MOHAMMED FURQHAN
 
An Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIM
An Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIMAn Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIM
An Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIMjournalBEEI
 
An introduction to_programming_the_microchip_pic_in_ccs_c
An introduction to_programming_the_microchip_pic_in_ccs_cAn introduction to_programming_the_microchip_pic_in_ccs_c
An introduction to_programming_the_microchip_pic_in_ccs_cSuresh Murugesan
 
Ecd302 unit 01(investigate ecad systems)
Ecd302 unit 01(investigate ecad systems)Ecd302 unit 01(investigate ecad systems)
Ecd302 unit 01(investigate ecad systems)Xi Qiu
 
IRJET- Obfuscation: Maze of Code
IRJET- Obfuscation: Maze of CodeIRJET- Obfuscation: Maze of Code
IRJET- Obfuscation: Maze of CodeIRJET Journal
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis Perforce
 
SystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFSSystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFSmeharikiros2
 

Ähnlich wie Reverse engineering (20)

Reverse code engineering
Reverse code engineeringReverse code engineering
Reverse code engineering
 
WhitePaperTemplate
WhitePaperTemplateWhitePaperTemplate
WhitePaperTemplate
 
International Journal of Engineering Research and Development
International Journal of Engineering Research and DevelopmentInternational Journal of Engineering Research and Development
International Journal of Engineering Research and Development
 
Embedded programming Embedded programming (1).pptx
Embedded programming Embedded programming (1).pptxEmbedded programming Embedded programming (1).pptx
Embedded programming Embedded programming (1).pptx
 
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
EMBEDDED SYSTEMS SYBSC IT SEM IV UNIT V Embedded Systems Integrated Developme...
 
RISC-V growth and successes in technology and industry - embedded world 2021
RISC-V growth and successes in technology and industry - embedded world 2021RISC-V growth and successes in technology and industry - embedded world 2021
RISC-V growth and successes in technology and industry - embedded world 2021
 
Stack-Based Buffer Overflows
Stack-Based Buffer OverflowsStack-Based Buffer Overflows
Stack-Based Buffer Overflows
 
Vxcon 2016
Vxcon 2016Vxcon 2016
Vxcon 2016
 
International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)International Journal of Computational Engineering Research(IJCER)
International Journal of Computational Engineering Research(IJCER)
 
Resume
ResumeResume
Resume
 
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
A CASE STUDY ON EMBEDDED SYSTEM SOFTWARE STACK LAYERS
 
An Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIM
An Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIMAn Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIM
An Enhanced FPGA Based Asynchronous Microprocessor Design Using VIVADO and ISIM
 
An introduction to_programming_the_microchip_pic_in_ccs_c
An introduction to_programming_the_microchip_pic_in_ccs_cAn introduction to_programming_the_microchip_pic_in_ccs_c
An introduction to_programming_the_microchip_pic_in_ccs_c
 
Linux binary Exploitation
Linux binary ExploitationLinux binary Exploitation
Linux binary Exploitation
 
Ecd302 unit 01(investigate ecad systems)
Ecd302 unit 01(investigate ecad systems)Ecd302 unit 01(investigate ecad systems)
Ecd302 unit 01(investigate ecad systems)
 
IRJET- Obfuscation: Maze of Code
IRJET- Obfuscation: Maze of CodeIRJET- Obfuscation: Maze of Code
IRJET- Obfuscation: Maze of Code
 
E.s unit 6
E.s unit 6E.s unit 6
E.s unit 6
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis
 
SystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFSSystemsProgrammingCourse FSDFFSFDSDSDSFSFS
SystemsProgrammingCourse FSDFFSFDSDSDSFSFS
 
Surya resume
Surya resumeSurya resume
Surya resume
 

Kürzlich hochgeladen

Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxnelietumpap1
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 

Kürzlich hochgeladen (20)

Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Q4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptxQ4 English4 Week3 PPT Melcnmg-based.pptx
Q4 English4 Week3 PPT Melcnmg-based.pptx
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 

Reverse engineering

  • 1. Reverse engineering By : Sitanshu Dubey Security analyst and researcher Hicube Infosec Pvt. Ltd. E-mail: sitanshu@hicubes.com
  • 2. Reverse engineering Content - Introduction - Needs - Assembly Language basics - Debuggers
  • 3. Reverse engineering Introduction - Reverse Engineering is a process of redesigning an existing product to improve and broaden its function, add quality and to increase its useful life. Also and important additional goal is to reduce manufacturing costs of the new product making it competitive in the market place.
  • 4. Reverse engineering Reverse engg. Vs Forward engg. Forward Engineering Reverse Engineering Requirements Design Source Code Behavior
  • 5. Reverse engineering Needs - Reverse engineering is used for testing purpose. - It is used for updating and adding new features. - Migration to another hardware/software platform. - Facilitating software reuse.
  • 6. Reverse engineering Assembly Language basics - Assembly language is the most basic programming language available for any processor. With assembly language, a programmer works with the operations which are implemented directly on the physical CPU.
  • 7. Reverse engineering Assembly Language basics - Every code of a software converts in assembly language whether it is written in java or c, or c++ or in any high level language. - Assembly language contains mnimonics for performing an operation like MOV AX, 47104 MOV DS, AX MOV [3998], 36 INT 32
  • 8. Reverse Engineering Flags - Flags are single bits which indicate the status of something. There are 32 different flags. You will mostly need only 3 of them in reversing. The Z- Flag, the O-Flag and the C-Flag. - A flag can only be '0' or '1', meaning ‘ok' or ‘not ok'.
  • 9. Reverse Engineering Segments and offsets - A segment is a piece in memory where instructions (CS), data (DS), stack (SS) or just an extra segment (ES) are stored. Every segment is divided in 'offsets'. In 32-bits applications (Windows 95/98/ME/2000), these offsets are numbered from 00000000 to FFFFFFFF. - A segment is like a page in a book. - And an offset is like a specific line at that page.
  • 10. Reverse Engineering Registers - Generally 32 bit / 64 bit windows supports mailly 9 registers. - EAX : Extended Accumulator Register - EBX : Base Register - ECX : Counter Register - EDX : Data Register - ESI : Source Index - EDI : Destination Index
  • 11. Reverse Engineering Pointer Registers - EBP : Base Pointer - ESP : Stack Pointer - EIP : Instruction Pointer
  • 12. Reverse Engineering Jumps - Different jump statements: JNZ Jump if not zero JMP Jumps always JLE Jump if (signed) less or equal JE Jump if equal
  • 13. Reverse Engineering Debuggers - A debugger or debugging tool is a computer program that is used to test and debug other programs . - Debuggers show the assembly code of the program.
  • 14. Reverse Engineering Debuggers - Widely used Debuggers i) Ollydbg ii) Windbg iii) Hdasm
  • 19. Packing & Unpacking Content - Introduction - Need - Objective Unpacking - Useful Tools - Conclusion
  • 20. Packing & Unpacking Introduction Packing - Packing is a process of protecting the code from the malicious users who use reverse engineering for malicious purpose such as braking security, braking copyrights etc..
  • 21. Packing & Unpacking Introduction Unpacking - Unpacking is the technique by which one can remove packers or protectors.
  • 22. Packing & Unpacking Need - Packing is very important to protect the codes. - If a malicious person become successful to brake the packer or protector then he can do normal reverse engineering to brake the code. That’s why its very important to use good protectors/packers.
  • 23. Packing & Unpacking Objective Unpacking - Packers 'pack' or 'compress' a program much the same way as compressor, packers then attach their own decryption / loading stub which 'unpacks' the program before resuming execution normally at the programs original entry point.
  • 24. Packing & Unpacking Objective Unpacking - The main objective of unpacking a software is to get the OEP (Original Entry Point) of the software. - Basically when a packer compress the application, the entry point become change to the entry point of packer rather then application.
  • 25. Packing & Unpacking Objective Unpacking - OEP is refer to the entry point of application. - If one can get the OEP then he can modify the code.
  • 26. Packing & Unpacking Useful Tools - Packers: i) Armadillo ii) ASPack & ASProtect iii) PECompact iv) WWPack(32) etc..
  • 27. Packing & Unpacking Useful Tools - Unpackers i) PEid ii) ArmKiller iii) UnAspack iv) UnShrinker etc..
  • 28. Packing & Unpacking Useful Tools - PEiD detects most common packers, crypters and compilers for PE files. It can currently detect more than 470 different signatures in PE files. - It is useful to get the packer’s name which helps to unpacking because for different packer we have to use different techniques.
  • 29. Packing & Unpacking PE files - The PE ("portable executable") file format is the format of executable binaries (DLLs and programs) for windows. - It can also be used for object files and libraries.
  • 30. Reverse Engineering Conclusion - Reverse Engineering is a new research area among software maintenance. - RE includes activities of understanding the system and recovery info from system. - Program understanding is the most important subset of Reverse Engineering. - Discovery of abstraction is key issue.