Reverse Engineering: Difference between revisions

From Open Source Ecology
Jump to navigation Jump to search
No edit summary
(Added some more links under the "Internal Links" section)
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Basics=
*The process of taking an ''engineered'' device/software (thus it is already "engineered" / built and needs no further engineering), and backtracking/deducing how it is designed, and why it was designed that way
*It can even be done to determine what something is/what it was used for, although this is more relevant for archeologists/museums etc, not OSE's context
*For OSE's Context it is mainly taking Old Hardware that has been seldom used/redesigned (due to being obsolete in today's conventional economic system) and reverse engineering them to regain that foundation pre-iterating on it:
**An example would be acquiring an old [[Stationary Engine]] ( such as a [[Hot Bulb Engine]] or [[Crude Oil Engine]] ) and reverse engineering it.  After that one could take that foundation and build a modular version made with modern methods, that hopefully also meets modern emission/efficiency standards etc (not a 1-to-1 duplication)
=OSE Reverse Engineering Protocol=
=OSE Reverse Engineering Protocol=
*It is useful to take technical drawings and convert them to real parts, a la Cad1919 - from 2d paper to real 3D. Clear instructional on that.
 
*Second, it is important to reverse engineer existing CAD drawings- for example if we have CAD from Lyman Extruder or McMaster Carr - at that point we can create modifiable parts from scratch by adding underlying sketches to CAD that doesn't have underlying sketches, such as STEP imports.
*To RE exiting STEP Import or where dimensions are not shown. First step is to show dimensions, and that is best done via Dimensioning Workbench. Dimension placement can be done for 3 different selected views - in a few minutes we generate all relevant dimensions. With these as working drawings, we open one FreeCAD tab with these dimensions, and in a second window we do Sketcher - or even paste the 2D right into the working window, so we have a workflow like in the Arch workbench. But let's say for now you have a 2D dimensioned Fab drawing - at best put that right in your working window while you work with Sketcher. So you generate sketches from drawings in the same window.
*To RE simplifications for complex assemblies, we want to use a strategy where we take a given assembly in a Google Drawing, and then we identify by number all the existing features/parts that we need to include ('''Simplification Diagram'''). This document is reviewable - so we end up with a formal paper trail of how a file is made. To this we can add the original complex part, and document how that entire part was made in detail - to complete the 'part modification process'.
*For full transparency on part generation, a peer-reviewed part generation workflow should be documented. Video. So we have a full file - with its version history - that includes verification of constraints, editable sketches, and a Tree View that is fully annotated and transparent. One should be able to go through the Tree View and justify every single design step. Optimization would involve generating the same part - but with fewer steps in the tree view. In fact, a formula should be created for the number of items in the tree view - such as #=#sketches + #blocks + #constraint. Further, a formula should be obtained for Acceptable Memory Size Calculation of an object - so one can verify from the tree view how much memory an object takes, and thus predict file size directly from the '''Simplification Diagram'''. Simplified formula based on 'Simplification Diagram' should be #parts x BM - where BM_x is Base Memory of underlying shape x. Such as rect solid should have BM_rectsolid=3*BM_cube - we should be able to understand basic memory requirements, and at that point completely predict file sizes. File size can be verified by examining Simplification Diagram. We impose a requirement - every part is 100k or less - and a final assembly limit is 50 items for 5 MB. Parts are worked on independently, so all basic geometries are imported - and made transparent via a Construction Set document. The construction set basic doc shows the critical design decisions. One side is the existing part libraries, then there is a list of 20-40 Design Decisions. The Design Decisions are broken into basic - here is the 12 steps for basic design - and then 48 steps for complete funky design. Define each clearly. Such as select frame material, length of axis, number extruders, size of print bed, extruder type, extruder nozzle, power supply DIY, etc.


=Notes=
=Notes=
Line 11: Line 13:
Using Baidu (China's Google) and knowing some chinese gets you to design schematics online, from China with love.
Using Baidu (China's Google) and knowing some chinese gets you to design schematics online, from China with love.


=Links=
 
=Reverse Engineering Lab=
*[[Reverse Engineering Lab Construction Set]]
Essentially Though:
 
==External Structure / Large Component Measurements==
**[[3D Scanner]] (Large Handheld Type) (Also [[Photogrammetry]] )
***And/or [[Calipers]] + [[Tape Measure]] + [[Level]] / [[Protractor]] / [[Rotation Dial]] / [[Angle Dial]]
**[[CAD]]
 
==Internal Structures / Small Components Measurements==
*Typical Tools for Disassembly (Stuff For Fasteners, Stuff For Removing "Permanent" / [[Tamper Evident Seals]] (Re: [[iFixit]] 's toolkits)
*[[Overhead Camera]] / [[Tripod]] , or even a separate person acting as the Videographer to capture what all went into taking it apart (To make re-assembly etc easier)
**Taking photos before each step can work to an extent, but can leave gaps in the knowledge
*Labeled Parts Bins/Containers
*[[Calipers]] and/or [[scAnt]] / [[Smartphone Photo Studio for #3DBenchy and tiny stuff]] / similar Small Part Turntable Style 3D Scanners
 
==Material Analysis==
*In Order of Increasing Cost/Complexity:
*A Well Trained Person + Simple Tools Like a [[XACTO Knife]] etc
**RE: [[BOLTRs by AVE]]
*[[Optical Microscope]] (Etchants/Laser Engravers can be used to [[Delid IC Packages]] if they are unlabeled to learn more
*[[Universal Testing Machine]]
*[[Plastic Scanner]]
*[[OpenRaman]]
*[[XRF Gun]]
*[[Industrial CT Scanner]]
*[[Electron Microscope]] / [[Atomic Force Microscope]]
 
=Methodology=
==If The Hardware in Question is on Hand==
*'''An important thing to note is if/to what degree the investigation will be "destructive"'''
**A Mass Produced [[Robotic Actuator]] could be dissected in a more rough and destructive manner than some mechanical artifact in a Museum! (For some odd things that are so old only a few still exist / [[Flops]] Cultural and Historical Value should be considered and preserved as well
*After all that is planned out:
*One starts from the least invasive and most towards the "outside" as possible
*So taking dimensions with the Tape Measure/Calipers, Taking Pictures, and using a Handheld 3D Scanner if Applicable are done
**Think of it almost like an Archeological Dig / CSI Scene in this phase
*Next ''the disassembling'' begins
*First remove all fasteners that can be removed
**Take note as to if / what type of [[Threadlocker]] etc is used
**Another thing to note is any [[Grease]] / [[Lubricant]] / [[Water Displacement Fluid]] used, potentially take samples along the way for [[Chemical Mixture Reverse Engineering]]
*Once this is done one can move on to "popping tabs" and [[Bypassing Tamper Evident Seals]] / Preforming Cuts if need be
*If another "layer" is encountered, one should return to the first step of measuring + photographing
*It would preferably be done throughout the whole process, but especially as that first step is done less and less, and the periods of "disassembling" grow longer one should document the process by something like an [[Overhead Camera]] ,  A [[Helmet Camera]] or [[POV Video]] / [[VR180]] etc
*As parts are taken out they should be put into separate LABELED containers to allow for later re-assembly etc (unless a very destructive approach is taken/only certain parts are of interest (a certain gear system or a chipset found ''inside'' the guts and unlabeled)
*The lowest level at this "phase" that one will stop on will be [[PCBs]]
*These get sent to another phase/station that is very similar to [[Microelectronics Repair]] in composition/expertise
*There they can use their [[Inspection Microscopes]] etc to view and document the [[PCB Schematics]] (if none are available)
*If there are any unknown components these can be [[Desoldering | Desoldered]] and sent off to the final "phase" for processing
*The "Final Phase" Consists of Determining What Specific IC's, Materials, And Chemical Solutions/Mixtures were used
**For instance [[Dyson Cinetic]] 's Cyclone Depends on the [[Elastomer]] at the tip of the nozzle being the proper [[Shure Hardness]] to allow it to ossilate and self-declog or the whole system clogs up.  This is not published, but if you get an old used unit, and a [[Durometer]] you can be good to go!
**Another thing could be determining what type of plastic, or what alloy of metal was used for a structual member
**Finally, even at the PCB level some companies will attempt to hide what they are doing/what they used.  IC Packages can be De-Lidded and investigated with various microscopes to determine what they are, and thus better fill in the schematic
 
=Interesting Case Studies=
*[[Rocketdyne F-1]] / [[F-1b Engine]] (As per [https://youtu.be/ovD0aLdRUs0 This Video by the YouTube Channel "Curious Droid" Titled "Why Can't we Remake the Rocketdyne F1 Engine?" ] ('''~5 Minute Watch''') (Basically all of the Fuel/Oxidizer Injectors Were ''Hand [[Brazing | Brazed]] Into Place'' and the Skill that required (Practically it's own profession, similar to [[Boilermakers]] but more obsolete) was gone, and they didn't [[Document Everything]] )
*[[FOGBANK]] (A material used in thermonuclear weapons, believed to be an [[Aerogel]] .  It was made, then the plants were shut down and people moved on.  Decades later they needed to make more when refurbishing the USA's arsenal.  They had to spend ''millions'' to reverse engineer it, then it turns out chemical impurities (for better or for worse) were essential to it's function, in a similar manner to how [https://youtu.be/evV05QeSjAw This Video by the YouTube Channel " [[Tom Scott]] " Titled "How they saved the holes in Swiss cheese" ] mentions that the wholes only form around essentially dirt particles.  Granted again security reasons applied in this circumstance, but it shows the importance of detail in reverse engineering and how [[Documenting Everything]] prevents the need
 
=Internal Links=
*[[Chinese Reverse Engineering]]
*[[Items of Interest for Reverse Engineering]]
 
=External Links=
*[https://en.wikipedia.org/wiki/Reverse_engineering The Wikipedia Page on Reverse Engineering]
*Seminal work from Bunnie Huang on reverse engineering of hardware - [http://www.bunniestudios.com/blog/?p=4297]
*Seminal work from Bunnie Huang on reverse engineering of hardware - [http://www.bunniestudios.com/blog/?p=4297]
:*Bunnie's video - https://www.youtube.com/watch?v=msrTR3hNDQM#t=161
:*Bunnie's video - https://www.youtube.com/watch?v=msrTR3hNDQM#t=161
*Software reverse engineering - [https://www.eff.org/issues/coders/reverse-engineering-faq]
*Software reverse engineering - [https://www.eff.org/issues/coders/reverse-engineering-faq]

Latest revision as of 01:12, 9 May 2023

Basics

  • The process of taking an engineered device/software (thus it is already "engineered" / built and needs no further engineering), and backtracking/deducing how it is designed, and why it was designed that way
  • It can even be done to determine what something is/what it was used for, although this is more relevant for archeologists/museums etc, not OSE's context
  • For OSE's Context it is mainly taking Old Hardware that has been seldom used/redesigned (due to being obsolete in today's conventional economic system) and reverse engineering them to regain that foundation pre-iterating on it:
    • An example would be acquiring an old Stationary Engine ( such as a Hot Bulb Engine or Crude Oil Engine ) and reverse engineering it. After that one could take that foundation and build a modular version made with modern methods, that hopefully also meets modern emission/efficiency standards etc (not a 1-to-1 duplication)

OSE Reverse Engineering Protocol

Notes

How to reverse engineer anything.

Using Baidu (China's Google) and knowing some chinese gets you to design schematics online, from China with love.


Reverse Engineering Lab

Essentially Though:

External Structure / Large Component Measurements

Internal Structures / Small Components Measurements

Material Analysis

Methodology

If The Hardware in Question is on Hand

  • An important thing to note is if/to what degree the investigation will be "destructive"
    • A Mass Produced Robotic Actuator could be dissected in a more rough and destructive manner than some mechanical artifact in a Museum! (For some odd things that are so old only a few still exist / Flops Cultural and Historical Value should be considered and preserved as well
  • After all that is planned out:
  • One starts from the least invasive and most towards the "outside" as possible
  • So taking dimensions with the Tape Measure/Calipers, Taking Pictures, and using a Handheld 3D Scanner if Applicable are done
    • Think of it almost like an Archeological Dig / CSI Scene in this phase
  • Next the disassembling begins
  • First remove all fasteners that can be removed
  • Once this is done one can move on to "popping tabs" and Bypassing Tamper Evident Seals / Preforming Cuts if need be
  • If another "layer" is encountered, one should return to the first step of measuring + photographing
  • It would preferably be done throughout the whole process, but especially as that first step is done less and less, and the periods of "disassembling" grow longer one should document the process by something like an Overhead Camera , A Helmet Camera or POV Video / VR180 etc
  • As parts are taken out they should be put into separate LABELED containers to allow for later re-assembly etc (unless a very destructive approach is taken/only certain parts are of interest (a certain gear system or a chipset found inside the guts and unlabeled)
  • The lowest level at this "phase" that one will stop on will be PCBs
  • These get sent to another phase/station that is very similar to Microelectronics Repair in composition/expertise
  • There they can use their Inspection Microscopes etc to view and document the PCB Schematics (if none are available)
  • If there are any unknown components these can be Desoldered and sent off to the final "phase" for processing
  • The "Final Phase" Consists of Determining What Specific IC's, Materials, And Chemical Solutions/Mixtures were used
    • For instance Dyson Cinetic 's Cyclone Depends on the Elastomer at the tip of the nozzle being the proper Shure Hardness to allow it to ossilate and self-declog or the whole system clogs up. This is not published, but if you get an old used unit, and a Durometer you can be good to go!
    • Another thing could be determining what type of plastic, or what alloy of metal was used for a structual member
    • Finally, even at the PCB level some companies will attempt to hide what they are doing/what they used. IC Packages can be De-Lidded and investigated with various microscopes to determine what they are, and thus better fill in the schematic

Interesting Case Studies

Internal Links

External Links

  • Software reverse engineering - [2]