Inhoudsopgave:

Project 2: Reverse Engineering: 11 stappen (met afbeeldingen)
Project 2: Reverse Engineering: 11 stappen (met afbeeldingen)

Video: Project 2: Reverse Engineering: 11 stappen (met afbeeldingen)

Video: Project 2: Reverse Engineering: 11 stappen (met afbeeldingen)
Video: CEMA 2021 CTF - ELF Binary Reverse Engineering 2024, Juli-
Anonim
Project 2: Hoe reverse-engineering te gebruiken?
Project 2: Hoe reverse-engineering te gebruiken?
Project 2: Hoe reverse-engineering te gebruiken?
Project 2: Hoe reverse-engineering te gebruiken?

Hallo mede-hobbyist, Een goede vriend van mij had verschillende componenten samen met een Raspberry Pi samengesteld om het RS232-protocol naar TTL te decoderen. Het eindresultaat werd allemaal in een doos gegooid die 3 hoofdcomponenten bevatte: een stroomomvormer om de Pi van stroom te voorzien, een tweekanaalsrelais dat ervoor zorgt dat er geen stroom wordt verspild door te regelen wanneer de communicatie moet plaatsvinden, en een RS232 naar TTL-moduleconverter. De taak die voor ons ligt is om een betere oplossing te creëren die alle hardware in één PCB combineert. Het eindresultaat is dat er minder elementen rondslingeren -> minder kabels -> trillingsbestendig ontwerp. Dit betekent dat de taak bij de hand een hardware reverse engineering-taak is. De volgende stappen zouden moeten helpen bij het oplossen van dit soort taken.

Stap 1: Identificeer de componenten

Identificeer de componenten
Identificeer de componenten

U moet googlen op een van de volgende manieren:

- De naam gebruiken die op het bord zelf is afgedrukt.

- Gebruik van de functie van het apparaat.

- Gebruik de hoofdcomponent in het bord zelf: zoek naar de vlezige chips -> haal hun namen op -> google hun applicatie.

- Google een afbeelding van alle gevonden trefwoorden en scrol omlaag totdat u het apparaat of een andere zoekopdracht vindt.

Om een lang verhaal kort te maken, ik heb alle drie de apparaten gevonden en heb ze op ebay besteld:

-MAX3232 NAAR TTL:

- 5V dubbele kanalen relais: https://www.ebay.ca/itm/5V-Dual-2-Channels-Relay-Module-With-optocoupler-For-PIC-AVR-DSP-ARM-Arduino/263347137695?hash= item3d50b66c9f:g:DlUAAOSwIVhaG-gf

- DC-DC buck-converter: https://www.ebay.ca/itm/DC-DC-Buck-Step-Down-Converter-6V-80V-24V-36V-48V-72V-to-5V-9V-12V -Voeding/122398869642?hash=item1c7f8a888a:g:3vkAAOSwuxFYyQyb

Stap 2: Tijd om wat circuitschema's te krijgen

Bij het zoeken naar schakelschema's is het belangrijk om de hoofdfunctie van elk bord in gedachten te houden.

Zodra de schakelschema's zijn gevonden, gaat u naar digikey (of mouser, of iets anders waar u de elementen van gaat bestellen) en kijkt u of de hoofdchip beschikbaar is, aangezien u deze later zult bestellen.

Alle andere elementen zouden beschikbaar moeten zijn op de meeste elektronische websites (diodes, doppen, inductoren, weerstanden …) Soms heb je een probleem om die in de juiste maat of verpakking te vinden (doorgaand gat, opbouwmontage, …)

Als dit in latere stadia van het ontwerp van belang is, zoek dan met deze details in gedachten.

Zo kwam ik uit op de volgende datasheets:

-MAX3232 NAAR TTL:

- 5V dubbele kanalen relais:

- DC-DC buck-converter:

Zoals eerder vermeld, ging ik door en begon te zoeken naar de componenten die op Digikey-websites werden gebruikt, ik kon ze allemaal vinden, behalve één onderdeel met betrekking tot de DC-DC buck-converter, meer specifiek kon ik de XLSEMI XL4015 buck-converter (gevonden op LCSC tho!) Om te voorkomen dat ik bij twee verschillende websites moet bestellen en dus twee keer de verzendkosten moet betalen, heb ik besloten om de converter te omzeilen en voor een ander ontwerp te gaan dat gebruikmaakt van componenten die op Digikey te vinden zijn. Dus uiteindelijk heb ik dit schema gevolgd:

Nieuwe Buck-converter:

Door ervoor te zorgen dat de stroom en spanning voldoende zijn om de Pi van stroom te voorzien, heb ik eindelijk alle elementen geïdentificeerd die in mijn hoofd-PCB zullen worden gebruikt.

Stap 3: Houd het grote plaatje in gedachten

Houd het grote geheel in gedachten
Houd het grote geheel in gedachten

Deze stap is erg belangrijk, omdat het de toon zet voor het algehele ontwerp. Het is mijn taak om het aantal draden dat in de doos rondslingert te verminderen, aangezien deze laatste wordt blootgesteld aan een omgeving met hoge trillingen. Om dit probleem aan te pakken, moest ik de stroomkabels (die de Pi van stroom voorzien) scheiden van de signaallijnen die werden gebruikt voor de decodering en de communicatie tussen apparaten. Met informatie in het achterhoofd zullen we alles combineren in één PCB. Het eindproduct zal één lintkabel en één micro-usb-kabel hebben om de verbinding met de Pi tot stand te brengen. De lintkabel zal alle signalen tussen de twee apparaten bevatten, terwijl de micro-usb-kabel de 5V, 1 A-stroom levert die nodig is om de Pi in te schakelen. Met dit in gedachten ging ik door en herschikte de GPIO-pinnen die in de Pi werden gebruikt om alle signalen dicht bij elkaar te hebben, zoals op de afbeelding te zien is. Om dit te doen, moet je natuurlijk de GPIO-pinnen veranderen in andere GPIO-pinnen, terwijl je Gnd verandert met andere Gnd en stroom met andere stroompinnen met behulp van de algemene pin uit de Raspberry Pi. Deze wijzigingen worden geregistreerd omdat ze later nodig zijn om de firmware op de Pi bij te werken.

Stap 4: EasyEDA: Schema's

EasyEDA: Schema's
EasyEDA: Schema's

In deze stap moet u vertrouwd raken met de eenvoudigste CAD-tool die er is. GemakkelijkEDA! zoals de naam al aangeeft, zou het eenvoudig moeten zijn om te leren hoe u deze ontwikkelingswebsite-tool kunt gebruiken. Ik voeg de link naar de website zelf toe, samen met andere goede referenties om u snel vooruit te helpen:

EasyEDA:

Introductievideo's (door GreatScott):

www.youtube.com/watch?v=35YuILUlfGs

Snelle tutorial gemaakt door de website-ontwikkelaars zelf:

Stap 5: Selecteer de benodigde componenten

In deze stap moet u selecteren of u componenten voor doorgaande of oppervlaktemontage wilt gebruiken op basis van de afmeting van het bord, uw soldeerapparatuur en uw soldeervaardigheden! Ik heb besloten om voor alle componenten, indien mogelijk, voor opbouwmontage te gaan, met enkele uitzonderingen waar de SMD-versie niet beschikbaar is, bijvoorbeeld de relais.

Vervolgens moet je de pakketgrootte voor alle doppen, weerstanden, diodes, enz. Vastleggen … In mijn geval heb ik besloten genoegen te nemen met 1206 voor de meest voorkomende componenten.

Ook hier zijn er veel online tutorials over soldeertechnieken voor oppervlaktemontage. Ik vertrouwde vooral op de tutorial van Dave Jone over dit onderwerp (hieronder gelinkt), kijk gerust naar de andere twee soldeertutorials:

EEVblog #186 – Soldeerhandleiding deel 3 – Opbouwmontage

www.youtube.com/watch?v=b9FC9fAlfQE&t=1259s

Ik weet dat de video lang is, maar de gast praat over andere interessante dingen terwijl hij je leert hoe je moet solderen. Het is duidelijk dat hij meer ervaring heeft dan de meeste hobbyisten die er zijn, zoals jij en ik, dus het zou goed moeten zijn.

Stap 6: Teken schema's voor de ontbrekende componenten

Schema's tekenen voor de ontbrekende componenten
Schema's tekenen voor de ontbrekende componenten
Schema's tekenen voor de ontbrekende componenten
Schema's tekenen voor de ontbrekende componenten

EasyEDA heeft een overgrote meerderheid van de componenten die ik van plan was te bestellen, behalve één apparaat. Dit gezegd hebbende, zou het geen probleem moeten zijn, aangezien u met deze software uw tekeningen aan de online bibliotheek kunt toevoegen.

Ik moest "D-SUB 15 vrouwelijke connector" toevoegen (digikey:

Door de datasheets van het apparaat in de link te controleren, kunt u de geometrische kenmerken van het onderdeel repliceren. Dat moet afstanden, afmetingen en richting van het apparaat omvatten. Als u geluk heeft, voegen de fabrikanten soms ook de PCB-tekeningen bij zodat u deze eenvoudig handmatig op easyeda kunt kopiëren en plakken.

Stap 7: Ontwerp uw PCB-layout

Image
Image
Crunch the Numbers in
Crunch the Numbers in

Bij het plaatsen van de verschillende componenten in het bord, moet u ervoor zorgen dat de lengte van de verbindingssporen wordt verminderd. Hoe langer deze laatste zijn, hoe meer uw signaallijnen worden blootgesteld aan impedantie en ruisinterferenties. Met deze gouden regel in gedachten ging ik door en plaatste al mijn componenten zoals getoond in de video.

Stap 8: Crunch de nummers in

In deze stap moet u de juiste spoorbreedte bepalen die moet worden gebruikt om verschillende elementen met elkaar te verbinden. De spoordikte van Easyeda is gestandaardiseerd op 1oz (uw goedkope optie). Dit betekent dat u gewoon een ruwe schatting moet hebben van de stroom die in elk van de sporen vloeit. Op basis van de toepassing bij de hand, heb ik besloten om 30mil vast te stellen voor de meeste van mijn stroomsporen (met een maximum van 1 A) en 10~15 mil voor de signaalsporen (met een maximum van 100 mm A).

U kunt een online traceercalculator zoals deze gebruiken om die cijfers te krijgen.

Online traceercalculator:

Stap 9: Sluit het aan

Image
Image
Sluit het aan
Sluit het aan

Zodra de racedikte voor verschillende lijnen is vastgesteld, is het tijd om de bedrading van alle componenten te doen. Als je je componenten hebt geplaatst volgens de algemene ontwerpregels voor PCB's (hieronder gelinkt), zou je de bedrading gemakkelijk moeten kunnen doen. Aan het einde, na het toevoegen van de kopercoating, heb je een voltooide print die klaar is om besteld te worden. Daarvoor raad ik aan om de partnerwebsite van easyeda, JLCPCB (hieronder gelinkt) te gebruiken. Bij het bestellen hoeft u geen wijzigingen aan te brengen in de standaard bestelopties. Ook als je meer dan één bord soldeert, raad ik aan om het stencilvel te bestellen dat bij je geüploade gerber-bestand hoort. Hierdoor bespaart u veel tijd tijdens het soldeerproces.

Stap 10: Tijd voor serieus solderen

Tijd voor serieus solderen
Tijd voor serieus solderen

Omdat ik slechts één onderdeel soldeer om mijn ontwerp te testen, heb ik het solderen handmatig uitgevoerd om mijn vaardigheden op dat gebied te verbeteren. Het uiteindelijke product ziet eruit zoals op de bijgevoegde afbeelding.

Stap 11: Doe de laatste controles

Doe de laatste controles
Doe de laatste controles

In deze laatste stap moet u een basiscontinuïteitstest uitvoeren van uw belangrijke sporen, zoals de hoogspanningslijnen. Dit zou je moeten helpen voorkomen dat je iets beschadigt dat op je bord is aangesloten (in mijn geval: de raspberry Pi). En zo kon ik met behulp van reverse engineering een trillingsbestendig apparaat maken.

Zoals altijd, bedankt voor het volgen van mijn verhalen met techniek. Voel je vrij om mijn berichten leuk te vinden, te delen of te reageren.

Tot de volgende keer, Proost:D

Aanbevolen: