Friday, 23 August 2013 Session Work out Presented By: Abhijit Pal.

Slides:



Advertisements
Similar presentations
Software Re-engineering
Advertisements

Chapter 11 Software Evolution
SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities.
Systems Software.
Programming Creating programs that run on your PC
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
Software Evolution Managing the processes of software system change
1 Capstone projects supervised by Yinong Chen (1) Implementation of a Shell on Palm Hand Held Device (2) Building a Programmer’s Interface to the Palm.
Driss Kettani Sommerville, 6th edition Software Engineering II Software re-engineering l Reorganising and modifying existing software systems to make them.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
Chapter 9 – Software Evolution and Maintenance
Activity 1 - WBs 5 mins Go online and spend a moment trying to find out the difference between: HIGH LEVEL programming languages and LOW LEVEL programming.
Code Injection and Software Cracking’s Effect on Network Security Group 5 Jason Fritts Utsav Kanani Zener Bayudan ECE 4112 Fall 2007.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Software Engineering Muhammad Fahad Khan
Trying to like a boss… REVERSE ENGINEERING. WHAT EVEN IS… REVERSE ENGINEERING?? Reverse engineering is the process of disassembling and analyzing a particular.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Software Construction and Evolution - CSSE 375 Reverse Engineering Tools and Techniques Shawn & Steve Left – Reengineering from the competition can be.
Abstraction Interpretation Abstract Interpretation is a general theory for approximating the semantics of dynamic systems (Cousot & Cousot 1977) Abstract.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
Introduction to Java August 14, 2008 Mrs. C. Furman.
CS 425 Game Programming I Jan M. Allbeck. Outline  Introductions  Expectations  Tools and setup  Quick introduction to C++ and Visual Studio  What.
Disclaimer The Content, Demonstration, Source Code and Programs presented here is "AS IS" without any warranty or conditions.
National Diploma Unit 4 Introduction to Software Development Introduction to Programming Languages.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
Copyright © technoKrats Friday Work-outs session – 27 th June 2013 Presented By – Sanghamitra Ghosh.
Reverse Engineering - Padma Dasari. Reverse Engineering Engineering is the profession involved in designing, manufacturing, constructing, and maintaining.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 28Slide 1 CO7206 System Reengineering 4.2 Software Reengineering Most slides are Slides.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
HNDIT23082 Lecture 06:Software Maintenance. Reasons for changes Errors in the existing system Changes in requirements Technological advances Legislation.
Compilers and Interpreters. HARDWARE Machine LanguageAssembly Language High Level Language C++ Visual Basic JAVA Humans.
 Programming - the process of creating computer programs.
1 Software Maintenance The process of changing the system after it has been delivered and in operation Software change is inevitable –New requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Reverse Engineering. Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates.
Reverse Engineering CS3300 Fall What is it? Extracting design information from existing software Two types: Source Code based (easier) or Binary.
“Software reverse engineering involves taking an existing system for which source code or proper documentation is not available and attempting to recover.
Lecture1 Instructor: Amal Hussain ALshardy. Introduce students to the basics of writing software programs including variables, types, arrays, control.
Chapter 1: Introduction to Visual Basic.NET: Background and Perspective Visual Basic.NET Programming: From Problem Analysis to Program Design.
Reverse Engineering Dept. of I&CT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering.
Sweet Problem Based Learning Reverse engineering Custom Cupcakes.
Software Reverse Engineering Binary analysis: concepts, methods and tools. Catalin Patulea Mar 5, 2008.
Contents What is Reverse Engineering (RE)? Why do we need Reverse Engineering? Scope and Tasks of Reverse Engineering Reverse Engineering Tools Reverse.
CASE Tools and their Effect on Software Quality
C++ Programming Basics C++ Lecture 1 Stacy MacAllister.
Introduction to Software Engineering
CHAPTER 4 Methodology.
Testing Tools & Standards
Introduction to programming
Introduction to Software Evolution and Maintenance
Software Maintenance.
Application Development Theory
TRANSLATORS AND IDEs Key Revision Points.
Assembler, Compiler, Interpreter
DESIGN CONCEPTS AND PROCESSES
Reverse Engineering: A Roadmap
Reverse Engineering.
Product Disassembly.
REVERSE ENGINEERING Footer Text 1/1/2019.
Assembler, Compiler, Interpreter
Chapter 8 Software Evolution.
Re- engineeniering.
Introduction Software maintenance:
Software Re-engineering and Reverse Engineering
Hello World Program In Visual Studio and Debugging
Introduction to Computer Science
Presentation transcript:

Friday, 23 August 2013 Session Work out Presented By: Abhijit Pal

Reverse Engineering On Software: An Introduction

POINT OF DISSCUSSION: 1. Basic concept of software reverse engineering. 2. Definition of reverse engineering in Engineer’s Perspective. 3. Theory of reverse engineering. 4. Forward engineering v/s reverse engineering. 5. Debuggers, Disassemblers,Compiler. 6. Software Reverse engineering tools. 7. An example of reverse engineering. 8. Advantage and Disadvantage of reverse engineering. 9. Some of the greate reverse engineer’s. 10. Motivation for you.

Basic concept of software reverse engineering(Why) 1. You take something and, from there, try to learn how (some aspect of) it was engineered. 2. Reorganising and modifying existing software systems to make them more maintainable. 3. Analyzing the good and bad features of competitors’ products. 4. The original manufacturer no longer exists, but a customer needs the product. 5. Some bad features of a product need to be eliminated.

Definition of reverse engineering in Engineer’s Perspective A systematic methodology for analyzing the design of an existing device or system, either as an approach to study the design or as a prerequisite for re-design. or The process of duplicating an existing software, subassembly, or product, without drawings, documentation, or a computer model is known as Reverse Engineering (RE).

Theory or Rule of Reverse Engineering 1. There is no existing rule in reverse engineering. 2. Set your GOAL & What functionality you need from your final product? 3. Choose your existing software which is quite similar functionality of your final product. 4. Understand your existing software core functionality. 5. Add some new function & query which gives you more advance features.

Forward Engineering v/s Reverse Engineering

Debuggers, Disassemblers,Compiler Compiler: In the development of software, the source code in which programmers originally write is translated into object (binary) code. The translation is done with a computer program called an "assembler" or "compiler".source code Disassembler: Disassembly or decompilation reverses this process by reading the object code of the program and translating them into source code. By presenting the information in a computer language that a software programmer can understand, the reverse engineer can analyze the structure of the program and identify how it operates. Debugger: Debugger, translate object(binary) code into assembly level code.

Software Reverse Engineering Tools Debugger Tools: WinDbg, Visual Studio Debugger, OllyDbg, Immunity Debugger, gdb etc. Disassemblers Tools: IDA Pro,Java disassembler, Process Explorer, RegMon, FileMon, TCPView, BinDiff, Hex-Rays etc. Compiler Tools: Java Compiler,Turbo C Compiler etc.

A Simple Example Of Reverse Engineering I will show you how to crack the serial key of any software

Advantage of Reverse Engineering Reduced Risk: There is a high risk in new software development. There may be development problems, staffing problems and specification problems. Reduced Cost: The cost of re-engineering is often significantly less than the costs of developing new software. Improvement: Program structure improvement so software has an improve version. Security:Can be used for good Understand malware or legacy code. Reusability: Transforming obsolete products into useful ones by adapting them to new systems and platforms.

Disdvantage of Reverse Engineering 1. It is not legal in sutten case. 2. You are fully depend on reverse engineering tools. 3. It will take very long time if you do not understand the existing software code.

Some Of The Greate Reverse Engineer’s Kevin Mitnick( Lenny Zeltser( Jonathan James( Gary McKinnon( Adrian Lamo( Albert gonzalez( Ankit Fadia(

Motivation For You Some Real Example

India Office technoKrats 43, N K Guin Lane Serampore(712201) Hooghly, West Bengal Tel: +91 (0) Fax: +91 (0) Web: technokrats.intechnokrats.in Web:tenetsystems.net © Copyright 2008 – 2013 technoKrats THANK YOU