You are on page 1of 501
“SR Erp ° TRALEE o MFSVEHARNSH © RAMSRS TMA Reverse Engineering for Beginners Ix x ip FA [352%] Dennis Yurichevo = Archer RRRPARSMSMERD OE Windows ARM iOS § Linux Pie] ererepseunieserl G Abeworbul etl POSTS & TELECOM PRESS INCE” [$384] Dennis Yurichevo# Archer RERSMA SMALL OR AC RR BN We #E aR HEME (CIP) Bae ROT / Cp ne4) ALES @ennis Yurichey) # ; Archer, KREPMA AWA seh alt. Abe: ABUMSERIAGEL, 2017.4 ISBN 978-7-115-43445-6 1. Dit . OM Or Ose UL OLA Hi PSUR — A IV. OB 472-39 *h DRA IRCI PAE (2016) 243654 AR AR A Simplified Chinese translation copyright ©2017 by Posts and Telecommunications Press ALL RIGHTS RESERVED Reverse Engineering for Beginners, by Dennis Yurichev Copyright © 2016 by Dennis Yurichey AFP AMRALEL (ES Dennis Yurichey SRAR ATH BALMER. RE UWMA TAMAT, AARNE {LABS AAS LEA J aN RETF BS BAH WELT, BAMBI. +e [512] Dennis Yurichev * Archer RARE TS YS MIE Ly TER RTE RH RabH ARAB FUL EH Be 47 de Sr RSPB LS f86% LoOI6 — LEAIF} 315@pipress.comen FELL hips piposs.comen Ae AEE pH © PR 787«1092 N10 . 61s el 1 Re 1990 TH 2017 4 I 1 He ae 1-3 000 2017 AF 4 SIGE 1 RAL SRAM BS AF: 01-2014-3227 5 FEO: 168.007 CE. FAB) iRAAGA AM (010) 81055410 EDR TAAL: (010) 81055316 RRMA: (O10) 81055315 PASTE: RRL SH 8052 5 AR ze SALEM RARE, GHAR AHL PHAR, DMM RAI SCR eR bk, RRM RAE. AUSETRIMMMTE, LSA eR. SRA AL. KR, Pot, FE 102 YA X86/X64. ARM/ARM-64.MIPS, Java/VM FH SE %, HADREDT F Oracle RDBMS. Itanium. PI, LD_PRELOAD, #228iH, ELF, Win32 PE X¢fFHat. 86-64 (critical sections. syscalls. 2ef AS HATHA TLS. HARES (PIC), WAH Simm Gtk. C++ STL, OpenMP. SHE SAS SORA ML, REA LARA BSS. TURE, ARR TRS Re UE PAR, WE SEAL APER HH T 2 LAS RE ATMS MM LBA, PERSIE, PUR ABN BM EER, dea ule FRARSS. F JER MABRAABAR AN RLRA HATA MELA F CL TERRE, REMMI (Reverse Engineering for Beginners}, TAME “TELAT AONE”. ERUHNEE ABD, BOR AER (REAR), fee i) Blog EMEA) RRA MT. AMEE TUS, a TRL, TA, I, SR eR RE OE TCH, GALE — Mt Eh T Ik22 70 TE X86. ARM All MIPS (6 RASH FAY “WA” BOR. EE SAT ALERIE X86, ARM, MIPS SR RT, ACL AR AA RR Se RR FES, BERREAVERMR AA. LLM, LAG LIMR, AB ARE SABA TE. RARE, RESALE, ASAT aR E BURT SOLA PEL ATAL AY X86 ASM SEE ATAT TEA ATR, SE AUBUTSEL ARM. MIPS SUPE “BAR” FPP. PARLE SPRATT AE SUL EEE FR, ERE ER". TERRE, BUMS SER ORM, (LFA TR ae. PUVA LEPRA. RASNSETE, BS MAARA ARMM, BREE SE, UALR AAT AR RT Se, Bet RAL ARAM BE he TELM) Hes. DALE ARES HAG ATOMS LR, MEASLES ERE A KR BAL CORRES Th, SPAR, RAT AY SR” Arik, IN SLUMS AEM, ROKER, LAMAR A. MS SURAT DANAE, ESMAS OT, BARS Ie A, AEC TB LAN RE ARRAN. FZ A KE" AVA, AMER TSA, BT, RIAA, AE At BAS APATEBL - Archer HAIR A AT MN — Fe RAR RE BA ET To ABAN SEEM, AR Dennis FARA Blog KHER. LAMAR AAI RT FON, LRGVA RAN AMORA CBR MDA, MAB REE. UL Dennis RST EMS Ale IERIE MH, SEAR TERA RE OD, TRA A WOT a ak Cg ARM64) DEPRAR THAR, RASA, PRADRGEBESLM. RUA. SIVLIE PEFTAN Archer LEMMA TE GR MEMES, AIAWNBL, Dennis 5 reA TARAS AS — Bt Ol se WES. SRT RIL TRIES, RR TAA NE CS ATHRKLBTMDA, ROR Archer AMT WWRH. — WTR, LARK CERT Mh PRE E RAAT HEAT FR PER. ROS LARK SMOMIRTARTABN, RRBMSTAMRRANE, AMARA RIE CR Se RATS SHI, RAIMA LEN, BIST RPS Re LATE ARS. TES eee KLM AMIN BIR——PAMRRRERM, PERS MMRELED, PRAM SRM TLE, EERE. EERASeS Oh, HARPKBRRLEH AM ATT AEH ECR, EE AM ASEM TRL I, PAIRT T RA 2 BATRA CLM) FAURE. GAPE AL, Web ALMA FF ac Mae, HARSH AMA AB BG Wed A SEALS, CAROTID ARI REIS RE TEE PR, A PAR OL, SH I FSV ARS BEMUSED, Ronee PENSE ABR. BEA APT ERR, UTE fh, SAUCER EMMIS ANIME, PSL SE. PRR CA BEM ID ATT AAT TE tare PHISH IE SB — MRA Se, — ea FT PRISE A Se TA EL TSZOREALE, SEMA EMAAR. EVER AS TIT hE RT SURAT OG AYE ORE” MTS, PATEL BE. AN ie Book Peale SMe AA Boob AR PEAS, MeL ELA BALA RI?” FRI ATT, IAs] Flame idk BATHS HSA BURT P ARENT APA EMOTE OE. EE" SP ean OR 4 RAIA TTA BAA TRIN PHAN, REAR RES wh MP REE ATL AT AL, LASS stim AUTUUER. Ay ee AL APT Baral, RAB MBA VAAL MATT. AK UA GPLDISSC+ aL BOI A, SERIALS FIA — Pa SRA A EIA AT AL a BPAAC ATTA” (RESTA. ERRATA CAE RAART ORT RAAS “HnB”, TT CARH aE ih AE ASAE], RAMA THN APT-TOCS. AR FERSARTAMS ETRE, tas SIS (SNe a i ead aby Aa AT Sfift, ESHER AAT, BATS PAM T AC AMET, TEE SACO aL LE. 2 Pah nents aces ye] i fash Pa ® @ ci SARA RRRELSTER EtG RSA ANS GRUE PRETEEN, MORAN sien See TE EAA, OTC CE NHTESE LAURE BE PHOAS BLUE AM LEMAR. APPR, BOA Ei ENO A BAT AUK ILE TEA “BT A” Wk, RRA ORAL. MPR, AUTRE aT, HT ATL RPE ER", RNES NARA ERS OR 1A AAR, DATS (HOT AHIR, DURE (i SLA NAAR ALA RETRO. BRATVE RMT, AMR 5S DPR Te A hE SE 2017 F125 Hs SERAHT AER Pb ARAL Ua AR 4 HAE AR EQUATION DRUG “4 rRENTD, PRESEN AA RUB URAS THT BUY ERT — OAT AB UE Ty RECALL ARR ASHI ® ‘as AS RANA BAR Me | RAE WRK AR ah As fe 18 28 4 ET mE CLAD) FRB (RAM EQUATION DRUG FART) FS: “CREAM BURR TURE, SKLAR RAR, CURA, RAT RER-TARK EZ ATLA, RETR, MET HAR, AORRATEEEACU LEMAR. I, KH, KABA AS, FCCLA mR Te, WRG LURRE CE, MERA, MARRERO RAS. RSM Ra TMB, ART Sa RR" SPAR ZHA LIP, AUER RRS oT ge. SERIE APT BGR AT, Bet RPT A REM, (ATA SMTA ET, (RRA TALIS REIN. RAE RA LIMBO ARE, MEAT ARE RRS. REREAD, BEER WUGKE NA, BEEN ANEA. EA AL, ARREARS MT WZ. MG BRA A, SRR AEANT, RET Dil BY “ga LAR” AE RR RS CRA 5 tl LEP HT RR SERMARHSATURARSINRA, VBI ORE em dS, BRAM RANA, UN “OB” KATA OD RRA LE. ORT (2) BRM LE. Jil 3D AMR Rae, UME RL. (3) HH DBMS 4149). ATER FRB —THL, BN Haat el TPE Beal x86/x64, ARM/ARM64, MIPS, Juva‘VM- db Rial ATH Ra Oracle RDBMS (4 81 ££), Itanium CLA64, #8 93H), linet) C48 78H), LD_PRELOAD (67.2 Wi) AHHH, ELF. Win32 PE SCtbASR (68.2 1) x86-64 (26.1 4, critical sections (68.4 17), syscalls (3 66 Fe), RAAF IE TLS, MEHL ACERS PIC (67.1 45), DIMER PASI ERE (95.1 9), C+ STL (51449 OpenMP (38 92 8), SEH (68.3 43). tea TES Ta ‘£44 + Dennis Yurichev Ae: MALRR Ra WER AIL: E-mail dennis(ajyurichey.com Skype dennis.yurichev RST BRELBRGMEMBPL (BR CERT), BRMER RE RUM URAC AT. APT Oe 2 eae (La) HADES HB LAR ARS TT HRS LEELA. EK CERT VL “38 — IA gy, PINRO Ah” BARR, ELECT. AOR Baw. WME FECMEN RANTS, JEU T RTE. RSMAS: IE 2010 EER. pull, AR. AR SUS APT EAB T SN, AT TRA TPRERST BT «SPDR BORE T KEL) ADP AHI He BST EPA Pr mw sR Oo ELSA Andrey “hermt” Baranovich fll Slava “Avid” Kazakov. SAUAARALAY Stanislav “Beaver” Bobrytskyy. Alexander Lysenko. Shell Rocket. Zhu Ruijin i Changmin Heo- (Yf Androw Zubinski, Arnaud Patard (rp on #debian-arm TRC) Abiaksendr Autayeu BRA ICA¥ » ASAT AGEN Archer HRA RAGAN MAME TL sistas 15 (Shi ALANPE Byungho Min. RON AUR Alexander “Lstar” Chernenkiy, Viadimir Botov, Andrei Brazhuk. Mark “Legxen” Coopers Yuan Jochen Kang, Mal Malakov, Lewis Porter #2 Jarle Thorsen APSURAGEALS BOM LRM, (IN ARAMA SAL eH MH Vasil Koleve BAA IT Andy Nechaevsky. ARIA github.com AUINAL. ADT AT BEI ASME T LATEX 2A CA. Tet, AR LBB. AVES RAB FAIS FARE AEH, TA PRA ATA Dennis Yurichevdonate. htm! AT RRB, OMIM SABA» iikSh RUE Pr RN A SA Se SEE BA FE RIBAK 25 * anonymous, 2 * Oleg Wygovsky (507100 UAH), Danis! Bitar (50), James Truscott ($4.5), Luts Roch (S63), Joris van de Vis ($127), Richard S Shultz (§20), Jang Minchang ($20), Shade Atlas (5 AUD), Yao Xiao (S10), PawelSzezur (40 CHF), Justin Simms ($20), Shawn the ROck (S27), Ki Chan Abn ($50), Triop AB (100 SEK), ‘Angedlbertiai (10+50 EUR), Sergey Lukianov (300 RUR), LudvigGislason (200 SEK), Gérard Labudie (40 FUR), Sersey Volchkov (10 AUD), VankayalsVigneswararao (S50), Philippe Teuwen ($4), Martin Hacberli ($10), Victor Cozncoy (5 EUR), Tobias Sturzenegger (10 CHF), Sontiy Thai ($15), BaynaAlZaabi ($75), Redfive BV. (25 EUR), JoonaOskariFTeskkilé (5 EUR), Marshall Bishop (850), Nicolas Werner (12 BUR), Jeremy Brown (S100), Alexandre Borges ($25), Vladimir Dikovski (50 EUR), Tui Hong (100.00 SEK), Fim_Di (500 RUR}, Tan Vincent (S30), So HorshaKandrakota (10 AUD), Pillay Harish (10 SGD), TimurValiev (230 RUR), Catlos Garcia Prado (10 FUR), Salikov [Alexander (500 RUR), Oliver Whitehouse (30 GBP), Katy Moe ($14), Maxim Dyakonov ($3), Sebastian Aguilera 20 FUR), Hans-Martin Miinch (15 EUR), JarleThorsen (100 NOK), VitalyOsipov ($100). DEPP DLO AMES MK Te OSA A RCP, TG. CPU BEER ARE SAMS SAV, ACIDS TT BU. (ROPE, SS EAT AAG: Be. CHMPRAARUTRA RL, ONT, HAR, CSIP A Feo SAB ARS HAS oe AL TH. PU. RAT ASI ACIS ARTI LBA, HAUT Ie Q: BREAST. BULA AMAR? A: TEMA L Pa: http://beginners.rev#lite. Qe SRE) TAS a et a fg A: tf reddit SHAMIM, REY Aa] PL HELA LAWRIE ER. AMM AY htp:/hwwvereddit.com/r/ReverseEnginccring! heeps/hwwow.reddit.convr/netsee/comments/22.1xxwrnetsecs_q2_2014_ information security hiring Qe RARE Ee A: fee AUmbPHibhie: dennis(ayurichev.com. SAN] PLEA NYAS forum. yurichev.com #5 173i). Sali A LE IT eK, HET ULF Paldaks TRS RAR eR RUT TMT AURA” ——Daniel Bilar, Siege Technologies, LLC. . 1 Asa 5 HRA” ——Pete Finnigan, Oracle RDBMS security gurus Se SL QUE {ES iL” ——Michael Sikorski, (Practical Malware Analysis: The Hands-On Guide to DissectingMalicious Software? FIHE« eevee HESS AH CT SES A BIR” ——Herbert Bos, BTM REAL A iy {Modern Operating Systems (4th Edition) (et . 4 AVE. HELE”, ——Luis Rocha, CISSP /ISSAP, #22832, Verizon se ae fe ATL © RLSM RSET TE RE. MHMUBA AZ S.” —Joris van de Vis, SAP RMFSRRLE Re © Sofa) AER] RAL.” ——Mike Stay, HOR, HEBIRIAUIRHL. Georgia, US. © ROTI! RRL EE eI A, REPRE SR ASAT.” ——Sergey Bratus, TOLLE ROT UD, CRD A WE @ “Dennis Yurichev RH f ASHI LARAMIE EMI!” TanelPoder, Oracle RDBMS EAE WER. © RAAT SIS” Archer, POCHER, IT RETA. > aI MSH K At Pog| 3b). H BBS HRCUHE HB ceuey Ll ORR #25 haan 21 x86: 2.2 ARM~ 2.3 MIPS~ MIPS 494-84 2AB ai 43% Hello, world! 31 7 3.11 MSVC~ 7 B12 GCC 3.13 GCC:AT&T 3.2 x86-64-~ 3.2.1 MSVC-x86-64 n 3.2.2 GCC-x86-64 semen | 3.3 GCC INSURE nee sol 34 ARM: “ 3 34.1 Keil 6/2013 Aan ead ARM HRA ere veld 3.4.2 Thumb RAF. AF BRAM 4 Kell 34.3 ARM RAF. FEAR Xcode 15 3.4.4 Thumb-2 4A. 7B Aidei #4 Xcode (LLVM ) =~ 16 34.5 ARM64~ ~ 3.5. MIPS ~ 35.1 ng GCC ~ Non-optimizing GCC ae B45 BMF 25 SATA Ff Ase csptneeneenscol 5.1 26 52 S21 RRS Ra Sk a BBE 5.23 Fetithy xB6:alloca() sho 5.25 (Windows) SEH 254944, FRAB 5.26 2a Rd 31 AURA AS FEAR f S40 Bene: 5.5 BRA, 35.1 SB To 5.5.2 UH Qe printiQ 35 SBA em 36 6.1 x86~ ee 6.1.1 x86: pera 36 6.12 x64: Hh 9 AUR 62 ARM~ 6.2.1 ARMA KHIR 3 PH 6.2.2 ARMARAT 1538 8 FE 63 MIPS~ 63.1 IS ABE 632 64 heli 7 65 Hts 37 scanf() TL PRRGI TAL BRL AS : 58 TAQ x86" Ss 7.1.3. MSVC + OllyDbg TA x6dooo 7.15 ARM: 7.1.6 MIPS 7.2 PAE 72.1 MSYC: x86~ cae 66 7.2.2 MSVC; x8610!lyDbs ~ 723 GCC: x86" : 68 7.24 MSVC: x64~ 7 68 7.2.5 ARM: Optimizing Keil 6/2013 (Thumb #4) --~ 7.2.6 ARM6400™ 7.2.7 MIPS 73 scant) Mn ASL ~ 7.3.1 MSVC: x86" MSVC: x86: IDA: 3.3. MSVC: x86+OllyDbg 34 MSVC: x86+Hiew- 3.5 MSVC:x64 We ye i B8e 8.1.1 MSVC~ 8.1.2 MSVC+OllyDbe 8.1.3 GCC ; MSVC ~ 22 GCC 82.3 GCC: uint64_t Bat 8.3.1 Nen-optimizing Keil 6/2013 (ARM mode} 7 8.3.2 Optimizing Keil 6/2013 (ARM mode) $3.3 Optimizing Keil 6/2013 {Thumb mode) ~ 89 3.4 ARM64 “89 8.4 MIPS ~~ “OL #98 BER 9.1 void Yai MEM SRIEMA ~ 9.2 EISELE AE ET ERR er 9 9.3 I AMSA ean Bie it~ 96 10.1 SER 96 10.2 Jribaivae Bk “98 10.3 Belin 100 #118 GOTO iss) 101 11.1 EHH Dead Code: seen 10D 2 die 102 B12e KES 103 12D ELIE 103 12.1.1 x86 103 12.12 ARM 109 12.13 MIPS U2 12.2 YAR us 12.2.1. Optimizing MSVC 11S 12.2.2 Optimizing Keil 6/2013: Thumb mode~ as “116 12.2.3 Optimizing Keil 6/2013: ARM mode~ 12.2.4 Non-optimizng GCC 4.9 (ARM64)" 122.5 MIPS 12.2.6 #AR, 12.3 ACHE 12.3.1 x86 12.3.2 ARM: 12.3.3 ARM64« 12.3.4 MIPS oo 12.3.5 (RA iffelse HRA HE AE 1236 Be~ 12.4 LORRI ME 124.1 12.4.2 12.4.3 25 8 12, 12.5. 12.5.3. MIPS 1254 RP RBS CAR APR) 9 126 126 84 83s 13.1 case Makialaeeeb nti 13.1.1 x86" switch(/case/default ~ # & 3 13.1.2. ARM: Optimizing Keil 6/2013 144.1 3281 165 (ARM mode) 133 144.2 2A 2 165 13.1.3 ARM: Optimizing Keil 6/2013 1443 283 (Thumb mode) 133 14k BEE gemrnnnnnnnennnne | 1B.L4 ARNGE:Nonoptining ce iy SISK CHAT RAB ia 13.LS ARM64: Optimizing GCC 15.1 strlen() (are) 49 “134 ISL. x86 13.1.6 MIPS 135 15.1.2 ARM: “136 15.13 MIPS 13.2 case PRB BY HEU 136 152 21a 13.2.1 x86-™ - 136 1S2.1 ER. Len erennnroneennnne 198 3 il 6/2 ee eee ap BAGH SURES RTHEHR et 13.2.3 ARM: Optimizing Keil 6/2013 161 Fie “181 (Thumb mode) socom 1] 161 Bay dike S 181 13.24 MIPS 143, 16.1.2 AHRABBEL~ “181 13.2.9 ab nee “144 16.1.3 HRA. aks 13.3 case Ay sex} BATA, “145 mee 182 13.3.1 MSVC~ 145 16.2 BRIS seen 186 133.2. GCC: soe AT 16.2.1 HAAR BIE 186 13.3.3 ARM64: Optimizing 163 SAE 186 GCC 49.1 a7 V6B.D AU [overnnennnnseen 186 13.4 Fall-through “149 ee BAL saved ag BITE FRU momen 188 13.42 ARM64-~ 150 17.1 TBEB 754 188 13.5 Hie) “151 17.2 x86° we 188 13.5.1 ALA 1 “151 17.3. ARM, MIPD, x86/x64 SIMD--=~--~ 188 a 1a CCH 188 ae i is 7s ase “189 14.1 BS “152 17.5.1 x86" “189 141.1 x86 “152 17.5.2. ARM: Optimizing Xcode 14.1.2 x86:O1lyDbg: 155 4.6.3 (LLVM) (ARM mode)~~ 193 1413 x86: AIR TR tracer 156 17.83 ARM: Optimizing Keil 62013 14.14 ARM~ “157 (Thumb modey - 14.1.5 MIPS 160 17.54 ARMG64: Optimizing GCC 14.1.6 Se “161 (Linaro) 4.9 194 142 TFA “161 17.8.5 ARMB64: Non-optimizing GCC 162.1 HER “161 (Linaro) 4.9 “195 14.2.2 bbiR ARM BLAH 17.5.6 MIPS 195 FE "162, 17.6 ALBEE Re 196 1 MIPS 163 176.1 x86 196 1424 BAR 164 17.62 ARM +Non-optimizing 143 Be smn 164 Xcode 4.6.3 (LYM) 14.4 165 Thumb-2 mode) + 197 4 Bie ae CEM) 17.6.3 ARM =Non-optimizing Keil 1874 83 6/2013 (ARM mode)" 188 ABM 11.64 ARM64 + Optimizing GCC 18.9 2) ii (Linaro) 4.9 - 391 851 17.65 MIPS 1892 MA 2 17.7 Hee AA~ 18.9.3 AEA 3° IDF x86 1394 884 17.2.2 ARM: 19.9.3 SLA Se aan ee Bie RE: 270 17.8 Hy ae BI lot Fede 270, 179 x64 x86 270 1710 2 19.1.2 ARM 2m 17.101 AL Le 19.2 WEAR ERREN- 274 17610.2. BER 2 19.2.1 x86" 24 é 192.2 ARM Optinizing Keil 62013 wise He {ARM mode)“ “271 18.1 fish 19.23 ARM + Optimizing Kel 62013 1811 x86 (Thumb mode) 218 18.1.2 ARM 1924 ARM + Optimizing Xcode 18.1.3. MIPS (LLYM)+ ARM mode 278 18.2. SBNPDEREBR mn 19.2.5. ARM: BIC 8 4d#4# ore 278 182.1 isan ROSbth 229 19.2.6 ARM64: Optimizing 182.2 nel 183 Sean A Per ar 18.3.1 Optimizing Xcode 4.6.3 (LLVM) (Thumb-2 mode) “236 18.4 Sf 238 185 SARE 238 185.1 x64 “239 185.2 3242 MSVC 239 18.5.3. 3242 ARM” 240 18.5.4 ARM64 18.5.5 MIPS 18.5.6 dkeeisith ~ 18.6 Sakae aeRO 1863 3) 18.64 BS RE ramen 18.7.2 ARM64 18.7.3. MIPS ~ GCC(Linaro) 4.9 28 192.7 ARMG4: Non-cptinizing Ger (Linaro) 4.9 279 19.2.8 MIPS~ 299, 19,3 BEB rr 279 19.4 4 FPU Lett 279 19a. XOR AEE 280 1942 x86 1943 MIPS 19.44 ARM™ 19.5 BER 19.5.1 x86- 19.5.2 x64 19.5.3. ARM ~ Optimizing Xcode 4.6.3 {LLVM) + ARM mode 19.54 ARM+ Optimizing Xcode 4.6.3 (LLM) + Thumb-2 made 19.55 ARM64+ Optimizing Gee 49 292 19,516 ARMS4+ Non-optimizing Gce 4.9 eevee 299 19.5.7, MIPS 293 BOR 5 19.6 AREAS ~ 21.7.2 48 2- 19.6.1 BRA CRE Bra # i nnn 19.62 SHARE (rumime A) 295 22 RARER Cumion) 28% aa 19.6.3 REALL CREB) 296 22.1 PREBLE RRA 19.6.4 FEEAPLAE (runtime PME) 296 22.11 x86 19.6.5 APPRAE ALE (aR BE) 296, 22.1.2 MIPS ~ 19.6.6 AHEAERUZ (runtime BHR) ~~ 297 19.7 hod “ 19.71 GAL 19.7.2, #8 2 19.73 AS 19.7.4 AA 820s AREAS ABLE R ~—~304 20.1 x86" ~ 304 20.2 x6# 20.3. 32 fi: ARM: 20.4 MIPS MIPS 8) B45 20.5 -AGIMRERA CGE ~ Bun 4 &- 21.1 MSVC: systemtime~ 21.11 OllyDbg- 211.2 react: S 21.2. Hi malloc Hee BSS FA 21.3 UNIX: struct tm 213.1 Linux 21.3.2 ARM: 21.3.3. MIPS ~ 2134 ake tht 213.5 MRA 3242 words 213.6 BRAS Haste 214 PPR Bet ee 2141 x86 214.2 ARM 21.43 MIPS ~ 24d See 215 SRE OllyDbg: 21.6 Hite oer 21.6.1 CPULD 21.6.2 PSK Rat 21.7 218 27.1 HAL 339 22.1.3 ARM (ARM mode)~~ 22.2 HNLaR ARLE 22.2.1 x86- 222.2 ARM64 2223 MIP: 22.2.4 RES 22.3 RUEY ARI BB BBE 23.1 MSVC 23.1.1 MSVC+OllyDbg 23.1.2 MSWCHtracer 23.1.3 MSVC-+ tracer (494904) ~~ 232 GCC - - 23.2.1 GCC+GDB (ARABS HL) 23.2.2 GCC+GDB (RAHA an) ~ SB 2d B32 AREAL 64 HBR 362 24.1 64 (USBI (EL DALLA x86 24.12 ARM 24.1.3 MIPS ~ 24.2 SAAR MEH 2424 x86 5 242.2 ARM 242.3, MIPS ~ 24.3 FLAN 243.1 x8 243.2 24.33 M4 Ae 2441 244.2 ARM 244.3 MIPS ~ 24.5 32 (eee 245.1 x8 245.2 ARM 64 EE 6 x wIeR sew CLAD) 24.5.3 312 25% SIMD-~ 23.1 RRL 25.1.1 wn pik 25.12 APRA 25.2. SIMD SAh sirlenQ) ~~ 826% sata 26.1 x86-64--~ 26.2 ARM 26.3 Ra $278 SIMD Si$z 271 FBG, QAI x64" QTA2 x86~ MIPS © RUNNFETIEH 395 213 BABAR 273.1 x64 “ 2732 x86 274 WERK 275 (ARN AE RIE C 27.6 aad 2B ARM JRSM ~ snes AQA, 28.1 SEPARA GED meen 28.2 3H aE 283 SRA 283.1 3242 ARM 283.2 ARM64—- 284 BRE fee 829% MIPS HR 29.1 Mat RE 29.2 BREF ~ SIRS BABA $308 ATSAWRTRAA~ 15 Be SHR 415 BLA BUR TERR 416 31S BR 8328 Atria cone ALD, B33 CPU rn soe A 33.1 eH 418 33.2 SARAH oe 1B £uE MRE fe iam MS ARTT Samo ee RIT $35 BEB rr “423 35.1 BERTI 423, 35.1.1 x86 #022 F MSVC 2012 fite-"423 35.1.2 x64 448 FH MSVC 2012 425 425 36 BERTIE mene 36.1 FI 362 PAF 2 363 B4 37% CRC32 HR AWF nr tz PaaS SLB ~ 38.1 TST SHIWHE aM cale_network address() 382 ht form IPO 38.3 RL print_es_ IPO" 38.4 form petnash ib ett set in 442 385 nee, 39 HBR. UME R rrr att 39.1 SMR 39.2 MEE Intel C++ 201 Hae RRR Bae RU ALA 86-0 412 ARM: 412.1 ARMARAT, RA Xcode 4.6.3 (LVM) 4. 453 41.2.2 Thumb-2 48aF i Xcode 4.6.3 #44 (LVM) A S4 41.2.3 att Xcode 4.6.3(LLVM) PAB Keil 6/2013 413° MIPS ~ 414 ER MUTE Aad RS MBE 415 SRM 415.1% 4152 Ba tae ANG BRR] Brrr Bae SHR, RX atoiQ) ~ ADL Bi) Pom nnrnennn ee ADL 64 BF MSVC 2013 4846 A212 GATE F HH GCC 4.9.1 He 42.1.3 ARM BAF Keil 6/2013 fi --460, 42.14 Thumb A8AF Keil 6/2013 th 42.15 ARMG4 Fe GCC 4.9.1 46 42.2 12 A221 64 AFH GCC 4.9.1 Ht 463 4222 ARM BAF Keil6/2013 Hitt 464 23 S2e~ . BoO8 ARH 431 REE AIA CEERTE BI Bo omer 4B.L1 FAP HLH cae siremp() ~ 3.12 FEAL SR serlendy 43.13 PAH Al BH stropyO~ 43.14 MAGEE BA memset)” 43.1.5 445A sdk memepyO: 43.1.6 ALAAt re k memempl) 473 4B.1.7 TDA BeAr B44 BS C99 AREA IRIR Eh mm 475 BASH TSAR LA abs) H- 45.1 x64 Fi GCC 4.9.1 ttt: 45.2 ARM64 FY GCC 4.9 thtk- ATR 478 B46 SKSKEK 46.1 TEAS co 80 46.1.1 edect FAERIE, vrorreern 80 46.1.2 kr rasnanni 46.2 vprintityes 80 “481 483 BD RSE RIAL OCHO, RARTAECMILRMES TABI. BR A SARIS, Bei FATE BRT CCHES MERE RLM SR, ZARA RAH, SERA x86 EF SCR, TAC EN MUR CCH A), RANE CEN ERA. TRIE ART MS, PAC RAR, CAN SESE AEA AEE x86/x64 A ARM ER KSUG]. WRI ERR, TTA TR. 18 CPU ist CPU BUTE ULAR IVEE PE IG. PTR, TERI ATPL JES. CPU SBNIRILRS. TOWN 7. HRB aaa. BEA Bee 224. SK CPU AH LRTI SRARMT Instruction Set Architecture, ISA)» BTS: RULE CPUARTHUS. ~ ASHES HS CLES: ATT AD KAI RTI ONRN, BRR, EARL ACER RUE. CPU See: HEH CPU HOH SI LRA AE2 (GPR). x86 CPU HART 8 GPR, x64 DARE 4164 GPR, TE ARM SAA 16 + GPR. LETTAU CPU SER HEMT, CHIE SET RTI NEL. NLA RES, BIR AALS 8 P32 (RRS, BVA CPU ASHER RRA EET! BA, SURPUAETS (PL) OO RTE? CPU TIRE, EBA CCH Java, Python HORMEL 6 CPU HR ARSENE. AEA REG, BRU tH ae (9 CPU, ASeLIB# Mok i URL) CPU aoe HGMNAE EY CPU SLR. ABI SEAL SARK, fv SRAM A OA SA, SMR EAR —— Ba FOV ARR. TNL, FR¢(T ALA AMEE EA RY CPU HALAL RICARIE A SARE OLE 1 NES /Compiler. 11 fe R384 YE x86 HUBS RIRM CISA) HL, % opcode CC#URS RUT ITALEEE) ACMA RATA. th Poet SS, POKING 64 Be CPU SAVE ATU BETT ATU BISA SE BCT SIA RTT 16 8036 CPU AUST. AMRHE x86 MACHER, LL AURBIEY CPU JE SSRERSEHA TE. ARM JRF RISC? CPU, EAS AEE Z ATR MIRE opcode WKIE “EL. dent, RAYE SST OW SHUCRRE. RANAUITIE, BIAS ARM FES NOSLAB REET 4 OATES. MT STS fe “ARM SK”, Ky ARRIETA. TESTS, Aik eet CPU HH SPR FEA 4 BDMUATI SHEN T — Ba et Sere 2 EIN) “Thumb” HERTS, AIT i Seam SE “Thumb Slik” 18-4. iT Thumb TESA EET AAD ARM HES, EAR BHEIES LIV AIR. AR, fee eT ELTA de ARM SRA Thumb BARA. 2, ARM fa eAGET AS Thumb RSS. HATE ARM v7 Per Fr MHA! T Thumb-2 28488. Thumb-2 SAAT AEE 2 EIU, 2 PEE BOER Sul 4 Te. WL, SEOHORABAUY “Thumb2 2442 ARM HFSS Thumb HRMS”. eink, EEA SS-AIRUEEOEE, LbL5 ARM BSRGSe MLE TAS. aT Thumb HOUTA Z A, Thumb-2 L449 ARM HUAN LR. iF Xcode UMERVURIG Thumb-2 SHE, HBL aA PodiPhone/iPad IMAFABIH T Thumb-2 SH © Reduced instruction computing MMAR. SSAALAMCE SR, UTTAR RS OL, ARATE 132.2 Harta | SB MOVPUSHICALLMce S84 4 waLeAmde Cia) 64 (vi ARM AtHEABEBSTT 2. J&R CPU HIG OAR ARH EMR MEG 4 FAH opcode, ELA JOEY Thumb #20004. FARES, 64 ARM THEA DRESE. EARS RM MEM, ARM Ft Aptieiy ty 3: ARM HEUER, Thumb BOO SE 4% Thumb-2) Hil ARM64 IRHRS SR. BLAH SELMER, RRO: UE SDR EAR SHR: AR REE {ES MRSA ITE. HARK, ATLAS At OR. ESM ABMS TBR, Fears ARM AIRF ISR PAT ARM Stee2 4h, GRAV SALLE SHIM S RAL Re RAAT EK HEEY 32 fi opcode. #4i MIPS. PowerPC Al Alpha AXP: Shel abot ede. #25 mi mM BHT AOE, CATA LERMMMNBAT. ATE/SET FBR AGL AT ian: RSTES 21 CCH RS int £1 return 123; 2.1 x86 AEF ELIAREZ I, GCC MRRP EMC MTS. fa Fo. HSH 22 Optimizing GCCIMSYC ( ILM ) mov eax) 123 MSVC REM M LBs BL. BABEL Sm, AI SHOMH 123 TRE EAX FEfEaR IU SORTA, BAO Sit BAX HS RS SBR, TOM (caller) A BAX SHS UG, HEAPBAGR. 2.2 ARM ARM HEAT A LBL? #84784 2.3 Optimizing Keil 6/2013 (ARM #834) xO,#0u7 + 123 ARM #97 (7 RO S468 PG BOK M(H, STL SAAC 123 MLE ROW ARM FE FF(EF LR #7728 (Link Register) 7PiKBAAGALZ IR NVIBIPLWEL CRA/ Return Address). x86 BEA OR” Mate CR EAE. OL, BX LR SME AOMESLE PS, HSS So GRATIN caller HRS» SEAT AL, x86 Fl ARM HSE MOV OMA MAIS) “move” HAT AMA. EMAAR A #1 (copy), itF# 2 (move). 2.3. MIPS ZEMIPS 353A, STEM ARTY BN, PLLA A (80-831), API BLM 4 M8 Cpseudoname) © Calling Convention, LAAT. BINA. 6 wa raise Cha) f% (SVO-VAO, (tultaeHe>. 126CC Spee Bet ATTIRSE FRA $8458.24 Optimizing GCC 445 GTS) 7 Ue $2,223 + OxTb ita IDA uy Se ARS PR OS HB syepi 25 Optimizing GCC 4.4.5 (IDA ) je Se Ty 930, OxTB Rao ean PRISE AT, Api BGR EMAL a 49 REA ES? CAsvo). Hesh LI HRS SEROMA “Load Immediate CREO” HBS HH, FAIR ESOT BES EAE AT LR AL BR pyeseeBls31 BUSRA Ay PRE A yah. eM aTeaHE PA ARM SEA LR AAP 6 Hshs At ARRAS LL BES VIR ORR RAT t AT RISC FEATS SEE —— 7% CRB) OREM (Branch delay slot)ffIUH+ ALM, AAR CHD Rese. AT APE AES CEE E TEA, BRRETAEMTRE. JHE RISC HAMAS AET “AE. BAIR DCEHALRR. BZ. Bef AEA EMS 2ITBIT IN. MIPS HORS SPAR sil, MIPS Bi DEER R AE FEMBEN DS LIES sob TERE St po RNB, ASR PAIS SAT HM #23 Hello, world! DA, RDM MC SREY —P PERM BS: Haclude int main) ‘ printf("hello, world\a"); return 0: he 3.1 x86 3.1.1 MSVC PIG PIS, AAT MSVC 2010 ETA MEF. cla FCP a AGT EE ARERR Sid OS ICE assembly listing file), FFI ALAM TLE CHAIR, FRE Lasm. Li AOE ARAT Los PUFF HHSBB31_ MSVC 2010 thetlo, world', On, 00H ‘ESET 863830 rriaté main ENOL “TEXT anos MSVC ERENT SiH RICA T Intel FE. LOS EPEC GE, OD Intel 7AM AT&T TB. ARSE 3.13 PY ENZ MES. TEAM, Lasm ZR, BERS R Lobj HG HME TRUTH Lexe. dE hello world MBIA, SOAS NAM RIBER, ED CONST #LTEXT B&, “Es }SU CMR EETM EEE, ZERIT, CCHET ATH Hello, world” SHIT MSP Coonst char[]), TERRE MEETS © Brian W. Kemighan, The C Programming Language, Fd. by Deanis M. Ritchie. nd, Prentice Hall Professional Tech- nical Reference, 1988, ISBN: 0131103709. 8 BHLER. (La) BOPAE (8 F 3 Bjame Stroustrup. The C++ Programming Language, 4th Edition. 2013 (J 176 Hi, 7.3.2 45>. TED, SHAT T A CLIVE, TPE AREA eb Fe Abita 4 5 SSG3830., PUL, STC ee #include const char *$563830(|="hello, world\n"; ‘ print! |Ssc3830) ; return 0; ) EFFI asm SCPPD), BMS ALE ARES ERS I MNES TP AAMAS 0, BD 00K. ROE CCH ER TEE, HF ASE TE HR A CRA WS). GRRE SHA THY 57.1.1 He FEAUGBL_TEXT FG 1 eR, ADEA main. ANCHO, ERE RS ES H/F 8 (function prologue) ABU (function epilogue). KE LAAN RATT MPS ALES ASAI, RAKE BMA printie aeise: CALL printf. PUSH JES, FRPIDF ATR MIRAE Ak. PE, printfa LLIB RTS, ASE A “hello, world!” fHyziik, 7E print PAA, AEP ESHSIE ES) manger. WEI, PRE ARAL CRIA ET) ee WBRZ TRU CESP TT > RAIA at. FAME “add ESP, 4”, HLESP AF4¢2A8 CHEHSt/Stack Pointer) LATHAM 4. PATA 84" 2 BORD x86 FR US TRA 32 Ge CW a 45) RR. LE, Ze x64 RELA MET, ESP ate: 8. Fk, HS aT LLOEY “POP AREA”. RARDIN Bee ot TE ORR TM POP IRS HE SEH (FS ET Ae IEE AMTECH Intel CHER) AGM] ADD FRO MCRUNAR, “EAM BEAN POP ECX HS 6 {pl 1, Oracle RDBMS ( rf Intel C++2iiE Aee7 DBE SHH POP ECX 484, TAHT ADD JR. SiR POP ECX SMTA ECK STEAM, HUBERT Hest. Intel C40 SEH POP BCX #82 894 2h--“S aa, POP ECX FEN OPCODE CL FH) FE ADD ESP ff] OPCODE (3.44) HEM. #843744 3.2 Oracle RDBMS 10.2 Linux (48 app.o) xci08000298 push ebx 7 no02IB call qksfrochitd stexti0000280 pop ex, AB HEN ERR AR APES Dy RHE CELE CCHF, printiQH BAe ZG, mainQ rh BeseiB | 0 (ed ¥cir HA ASIEN. 8 maind) BRERA 00 Je PBI “XOR BAX, BAX” i) Siti ARDS. AR, KOR ME “Fae” 9. RPA RUE, TEER “MOV EAX, 0” d+. EBLE Ay Bai MY opcode MT (2 F435 FWD. ti Mee BAL “SUB EAX,EAX” JHd0 BAX ®77@E%, Heeb SUB RATER. is © BE CPU fe R RL. ® SM btpsfen.wikipedia.crg/wiki/Exclusive_or- 3% Hello, world! 9 main Sti Gs UE AEE BAX MAS TRE RG ERE OE RET, HEURES. MS UNTER HHA, BMAP C/C++HY CRT RL. 3.1.2 GCC BETA, RATE GCC 4.4.1 SAAR hello world 7. geo te -0 1 Se /EHH RICA T AIDA interactive Disasserbler) 2% main() i SA0 HAT. IDA JFL MLA FES HES, ST MSVC ERASE SADT RL, CTA Intel A GAIL TRS Job, MIB GCC AU AE Intel EPR MNLWSI ZEIT E. AP LEAD GCC #367 “-S-masm=intel”. dNSIES 3.3 TEIDA PLES aie ‘oro near var10 = duord ptr -10h push ebe mov abp, esp and esp, OFFFFFEEDR sub esp, 10h ofiorld ; "aello, world\a" mov [esp#lohevarl0], 23x call _pranté nov Bax, 0 leave retn pain ead GOC RHC HRS. G MSVC /ERRIE RAE ACH a). CRT FEA “hello, world” FFF AERA BEE SHS) GifSl LAX C7, THEE Te ee. Sore EE MA TPA “AND ESP, OFFFFPFPOh” $84. (ES#RNwEL CESP INE) fa) 16 ASN ie 16 RA, MURR S. URAL TTI. ABA CPU HT BEBE APEC, SAAT RARE. SURE 8 Eq RAFAT a! DULL 32 11, x86 CPU FA 64 (i x64 CPU fA Lik. (ALE SRE EME “ORY ATHY OO Hi 16 PONE CGR 16 EPR". AREA THR STA Ht ETA RFT. © “SUB ESP, 10h" HEHE SEE Ox10 bytes, M16 Fi. RNERLEH, APRS 4 PHT. SEA ARTEL CESP) MATT 16 AERIS, TEMA HE Lo STAD. Ta. PUPAE CE EHIOAD TERA. Sedat, GCC EAI MOV #8; il) MSVC SaRMVE PUSH 94. HE var_10 EARN, RIANA printf yea CHEE Sse. BEE, EFPIA printiyaak. GCC RIMSVC A519), BREATH MIT, FM ere ae SANYAL Be “MOV BAX, 0” 48 S. (ke, FES Aitt MOV 4S (4 opeode HE FELE XOR 44H) opcode [C.. SRS LEAVERS, “RF “MOV ESP, EBP” #1 “POPEBP” WHS. AL, MSIE T SERINE: ESP, JAG EBP EAMES SMR TRS AAS. HEE. ERT ‘EBP # FBP itiT J BMP (MOVEBP, ESP/AND ESP, ..), fj PL oG REAR Mt 2 Te SB wy PRR 3.1.3 GCC:AT&T iB AT&T BORE ILA MLA. GRAS HEHE UNIX 28, D Cruntime libearyisoe:CRT, BALA GLA © S% Wikipedia: Data stcuctar alignment htip/e.wikipediaorgwiki/Data structure alignment. axeamiem Cha) BERR, BRR GCC4.7.3 HEMT RDFa RERY JES18%3.4 GH CCC47.3 BERBER gce “S$ LLe LEME E Tete $NHA35 GCC47.3 SMILES veile "ilk section zodata oe snelle, world\n" TERE, eel: WA, RATHI SELL PULSE of AHVICGRSD, ARES. SROTEML 3.6 GCC 4.7.3 ERIS 300: string thello, worle\n" sebp seep, 42D) s-18 Su ARTZ, RAMEE F Intel F(A AD ATAT FPRIMIE Vl » © MRI (operands, EHR IG) HOS SMA. Intel #3: < ARR. AT&T Hat: nt FI mis 5% lal, {08 “Options Number of opcode bytes” (RAHM, Mitl3. % 3% Hello, world! 13 printf |*world\n"|3 he int £20) i printf |"helio worla\e") he int main|} i ‘S be SR CCHF (G18 MSVC HE) SAMA TEMES IB, Biel GCC 4.8.1 FARE SRE ATT Ro 1588 3.10 ZIDA PMR GCC 481 WILRES H pros near s + dword ptr -1ch cub agp, Ich mov [aeprichis], offeat ; *worle\n" cali puta ads esp, Ich a endp 2 peoe nese s = duced ptr ~ich sub nov + “hello * colt acd etn 2 end skelle b ‘hello? 5 eb Wwazld', ACTTEUE HE “hello world” HAL, RCSA TSST HAASE LATA. ATED puts FE, ABARTH ML ERE TAY SER LACIE SE HO PAST, ADF RRA “DL” BF. Fe C1QPR ALIA A puts()ee MUN, EN SeAP AEM world” FUSE RE CIA 1 EAT), FAD puts() BASES UGB FFF #8 AT EAU BF AF BRE ATE FG GCC SERS FE STS HEAR HATE 3.4 ARM ART ARIE, ASHEN LIP LEM ARM SULT © 2013 6 HIRAM Keil EA. © Apple Xeode 4.6.3 IDE (7% LLVM-GCC 4.2 iF 28). © fil ARM64 fH GCC 49 (Linaro), 332 4:14 Windows FRADE FEBIAE PA: hitpsvwrwlinaroorg! projects/amav8/, FRIPHPRDARE. BUA ARM PUPEE 32 2 ARM #7. (Est 64 MHS ARM ESTER, 4102 D Apple 2704 Xeode 4.6.3 FIM AERINTER ATE GCC FEIT. AFLEMLEDY Coode penerator) ‘UNI LINMs 14 areas (bm) BT ARMGA FFF. 3.4.1. Keil 6/2013 BAA LINREAY ARM ARxt JSCETI FIRS. HI Keil 4HFEIHE hello world EFAIEM ARM TOR AMAT arnce.exe --asn =-080 -00 1c [BAR ammce HR RRAEMRENIL MES HN PLARSRIHT Intel 28, (ELACARIR ROAR AL ARM JE FROG”. MRL, SEAR IDA RAE MIRAI HE. $5382 3.11 (BA IDA 2% Non-optimizing Keil 6/2013 (ARM tt) text: 99900000 main ‘rexe:00000000 10 40 20 e9 siweD set, (M4, TA) ext :00000004 £2 ADR RO, aBellovorid “hello, world” text:00000008 13 18.00 BB BL _2printt, textsanon99g¢ 20 00 AO E3 BD, 40 0 80 BD 38 set, (RA, PCE ext :000001 “er s00000180 68 69 62 SCtafelLoliorla OCB "HelIo, world", + DATA XABES mained ARTES, SARS EID TEN. EMME LA, Re TEMAD PAHS ARM Bok HORMLIRE, MALIEE AAPL Thumb BNE LCE hanetC, HAT SSTMED. SPI, (R4,LRy"” HLT x86 69 PUSH IR4. EE RA PAF BAM LR(Link Register) #77 HIM RUA WASNT. IH, URE OME, WE “se”. Be AUD AMLMEE PUSH ARS, SG Thumb BECHER ATT “PUSH/POP” di&- 7 S253), UARASHEAP AIT IDA 87 LIB. SARIS TSM SPUBWE, TEBE SPA 7 n l LAT AP RA AVL Mt. STMFD HRM) —ctPRES PATER. ‘Thumb BUSCA PUSH 4244 DER PHERL. eR x86 “i eSlech JRMEREBREE JF AEH « STMED 34-251 EF ABWAEAS(A) PUSH 2-4. ECACC RRA TEN SP MIA. EA CHR SAR ZRRAL. ATL, SIMFD 7TH SCHEER TES IFRS AE SEP RMI “ADR RO, allelloWorld”. ETA POTME TIN ETIRLTE, #RAE “hello, world” FATE ANY eS CAE 45 PC RUIFEHTIN, HELE HEL RO ZT fede oF AY HEARS LURE PC 577 SFL PORMUDL, GARETH PC ICME IRMA «eS 5EXA TA position-independent code”» 72 (40 RR SURE INE AT LINIR, OS APL RGR ATMA ANIA EM: HRP ARREST ST SIAL LY RSET SEAN Cc ARRIREERSC PD. AMER, URE EE CL SeRCOIIELD, SRTBEATDN DC AVF. ADR IGS AUIS SARE SPA AEL ALULAD Etle EAR flab RO. BURA PC ARE THRE ATER ET POUR ELD. SA TARR AY maT EAE PES. “BL __2printi” “Fil printfa. BI Mi FL ESE Bn Lo © PK —HIRSIBAUIE, BUHL: OxC Kb “MOV RO, #0” (HALE. SA LR BAR. © PRS print MLAS A PC 47 88 PLB T RAAT ABR Be oi print) RE LEZ.» SPSL AUNTIE, RCE UA SPRAIN PACH» TEL, AR UCAEFY BL PROWL A, ADEE BL STF AE MOM AHABI LR ASAE BE YoU CISC GLASS) JEBA Ss RISC ARURSIOD RAM MECAPBER LINE Sil. CERT Las @ fli, ARM HatH Soh 8H PUSTPOP Hi ©) STMED Fl Storage Multiple Full Descending *%23 © stack pointer, Haat. xB6te64 HACHEM SPE SPILSP/RSP. i ARM {EARIH SP ALE SP. @ Program Counter, +} Sm feta Ha ‘86x64 MIA) PC MF PEIDRIP, ARM HEA ALY PC. ee ee ee S(LARR ATK, PC Dee Sf uhl+1, SAN CPU Jicrkpipeline BLATT AR. Snes! i BIE btipsswwwanm com'pdfs’comparison-arm-arm9-vl-pat © BL 4 Branch with Link S135. 247° x86 (M call HS #34 Hello, world! 3 FOS x86 (RR, TR AR SEAT LA TR Fa lh. JG —F, ARM BURBESIE SMS ikRE ise e7E EE. AE ARM Bits aii! 32 fia Sa TOL BL FSS sCeiwIG 32 MEAN 32 LEAH CANA), “CA RRA 26 CERO. AGL, BER SPATS EY opcode BHU 4 FH, MP SHBULRNSIAE dn Bh, WIMESILALATERUTPN ARE VE, ATLL opeode £ iTS. ZEAL ARM BNMU EST OU, ALEDBHISHT S108 opcode MIC 24 HAE 2 Ae, THM 26 REUSE. TE TOME. HILATAT, #BIRS BIBL MBAR HOH bohbak. ASHES #f232MB MLZ AP. Fo “MOV RO, #0” 4: RO 2 APE. Hello World BY CAEP, ERAUEEIE. Bdeeds RO aFfF aE. RIGHT “LDMED SP!, R4,PC” 38 —Se1RS°. EG STMFD RM THSL, ERR. ERED SMI, FORRES R4 APC, JP LS ERANGL SP. ETL SS POP 184A. maine 3 — SARS REE STMPD ISS, CHR SEPP AM LR POT AEH HA ERR « main()RAE HF FE Ae LDMED a4, (PALRID MEL TERRIN PC IOLA Ra or eee BR. WER, PEPE ITS HT, TE LHe REE LR PAPAL. AHA printi(y S256 LR ARMS REM, HERI SSE A TOE LR FERMI CERO BAR, LR WARP TENS LSS PC, CLIT a ART. i CC + EB mainQ kin, PEF EUESACHEEIETEE OS loader, AGE CRT PRISE MRE. SOUP REITs. HOES. HY DOB LIC EM ASCI 27 SIS VALAIS, LAT x86 ILIAD RY DB HS 3.4.2 Thumb RT. AF apt teHeTIA4 Keil AE LA Thumb ASR PE HT BH CRI amec.exa —thunb --¢90 ~00 Lee FUNSTEIDA THB MTHS ROTH EL 3.12 (FH IDA 2 Non-optimizing Keil 6/2013 (Thumb Est) 3B vexe:0pa00000 rain ‘00000090 10 BS PUSH (R4, LR) opogo002 co Ad ADR RO, ave lonori4 "hele, world" ‘opevog0d 06 £0 2E F2 BL aprinté ‘o0edan08 00 20 wows ko, #0 e0000000a 10 BD por (RL, eC) text 209000300 63 65 6C 6C reHeZLoworld ICR "hello, world",0 i DATA XAEP: naint2 ‘Thumb BSRIDRHHEAGRS. ARIMA 2 -FTH6 GID opcode, 32% Thumb BERERFAVHFIE. (ELE Thumb UDRHES BL “BLA” AIT 4 T4189 opeode, SALA 2 SAREE. AUK 16 £7 opcode Fi SVERAEM, RLLLOUA/ HDA PC AMERY. JUL, HE BL 144% 2 A 16 12 opcodes J Ae 16 RAR OILRERAI 10-80. BRATS ATLL AERMESRAYIG 1 fir. TH] Thumb BESRIH opoode AHL QMX, EPMA ~MindsEAZ 0 CThumb BEEQI opcode MUMAPHULRODAUR 20), LITTERS. FE S07 Thumb BECAVHERAR- OTT. dhiMaReels ana ZERS 1 (L, FUAR 22 GoM RADSE. BM Thumb ff BL BRPRHE SS FEBSIAPHOUL, Tn BERT HR RATA ei: JMB (22 Ree TT SRD Ta) PAA S A SPEEMALIMLIT, PUSH A PoP C/E 745 STMPDILDMED Hiv. SUR RIEL AAI, ELE E-CATEN NRE SP HET. ADR AESSHCLUTEDATAL TT MOVS OSIHOIBLNT (RO AHEM) BAS, 3.4.3 ARM BCT. Fatt Xcode LURE AOMGEIL, Xcode 4.6.3 HAEERR ATLA, BDA IEE LE, ERR © MRA 26 AA TAL C20 bits signed im) HHI. ® LDMED 5 Toad Muliple Full Descending HAS. 16 SwMLea mE ba) CCCI. HRSA PEEIT-O3, (EAT Xcode CM AL(M4iLITI-03) {WUE Hello world HET. AGRA BM PT RAC. 482784 3.13 Optimizing Xcode 4.6.3 (LLVM) (ARM #ezt) 27, 20, RO, 20, 20 _puts ao to 80 ED ER LDMFD spl, (37, PC) 48 65 6c ARAL APES 7748 STMFD/LDMFD 78-4 T SAP MOV SETS “Hello World!” AVE, 0x1686 IHL RO BAEZ. IRME Apple ABL HZEBELUMIRE”, RT APAEAMBASMLAYFL frame pointer) ira. “MOVT RO, #0” #50 “53 RO AEENAT 16 WWE. TEARM BCL, APH MOV Hi TERR ERE PRONE Ue fieksah, TAR ARM fa OR FE 32 (hd + BATION TT. BILL, ARAN (ie RY 16 AUN 31 E> BATES MOVT: TE. ARITRAR AI MOVT Healt ele, BDH 47 FASS “MOV RO, 4001686" Of, RO TS 7ERRITEG 16 RAL ATE. TEAR ALLA LRT “ADD RO, PC. RO” 46 PC ARO ETA, HAG TAT RAAT. EPI RAS (GY, TUVAREETT Za LPR EGE. a, PRPS ME eT EAE. JS, FSARML BL IRSA puisQRA, TAT IRAT SC AAT priniQmee. ea RRA GCC jozle0 DCS "ello World!" 0 REE, GRATE —T print PR AEHOY puts) CRA HN PEI LAD» FILE” REACT VERSE _L, fa print BOCh “%” TTL. fit puts() eA SERARUCT TT. WRB RRR, ACTS RES Ae, Att GCC EB AHR? ORL F pursOM EE RIE. LF puts PRR PEPIN (96, FLA SEAR B) stdout HE, TLL purse Me THEE. Inf) “MOV RO, #0” Fi RO RFPS. 3.4.4 Thumb-2 #208. FBG{CHIE Xcode ( LLVM ) BUMBLE, Xcode 4.6.3 AN UAGHLSL, IFUL Thumb-2 Biss RAL 482558 3.14 Optimizing Xcode 4.6.3 (LLVM) (Thumb-2 #83) eext: 0000256 nelle world :00002B6¢ 8D 35 Pus DognZBSE a1 F2 DE 30 Mow 00002872 :no002B74 Co c:D00n2B78 78 44 + n000: 000: :00002R80 80 3D ov Jotlorid OCB "Helio word!™, Oxo _estring:0 D BRB LAR Appio. ® Xcode 46.3 BHT GCC Hema. © WE hupswwvsciselant derprojects/eee_printiigce_printhuml. 32 elle, world! 17 ESCHSeL, thumb RESCH BLX AI BL AES EL 2 + 16 AH OTERO. Thumb-2 BE. BL fl BLX 8491 85 (1h opcode A HWM) 32 HE S4R4E, LONNIE opcode BLA OxPx BLE OxEX FFI. ELA Thumb #8 Thumb-2 Bat FHF fA opcode Ht, IDA ALAPAHA RTE. CEG ARM fist MRM, IDA Clea ALiE. fea Hopeodes i3 SET ATEIE NEAT. GBB, ZEIDA Shar ARM FeTHIHSN, FeAbaR MY oe © ARM Jt ARM64 HSCATH, opcode Li) 4-3-2-1 MMF EA. @ Thumb Hath, opcode LA 2-1 (HNP has. © Thumb-2 WSC 16 RAR SAL, TE opocde Uh 2-1-4-3 AUIGUT A 4 1DA 4, BRAT MLB LAR MOVW . MOVT.W, BLX 122 ABD) OxFx FP 6 Zia(N “MOVW RO, #0x13D8" HCL] RO STEAM 16 (HULL. FUN BRAS AEREIA 16 (ee “MOVT.W RO, #0°HUT EAI STR ial 77 Thumb fest MOVT GOP RTM, Riles Thumb-2 aS. CERT Pte GLH YE Thumb-2 BC “BLA” HHS. YEAR BLX 5 Thumb #eCiM BL AF SHBRAWERS. CAME puts BREE RAHAT LR PERE, ARERR T puts(ien ke, HG EASE ARAN Thumb/Thumb-2 Esty ARM SErks “ELAN Ho SEA OR SCH SS SAE AUHTER. B2L, HIMES 7 BUT TA. ASP aT TY ARM BiaC RS HOARE MAES. UE PAS HRI puts)? AWAIT AEA. SUS RPE LEAS PIS SERIE, PRAISE Windows {#2 /7F-SE- b a8SS 8) DLL SCF. Linux #2 EAE MAAS 31h. MacOSX AAUTEES MLA. dyhb Lb. MH MRM AE aE See. ACPI BIMTRRHE C BAY —pursQ PR ABA (FAN ESC (Windows If PE ATEMTIC¢F. ELF 2 Mach-O) a-i—“Mi ABER Cimport section). SARE TBS ET OURAN De (BE SER, IF A TTR BRE Ro CEE RAAT SUPA AIR, PBTIMAREEFF (OS loader) 5 ARERR EM ACR AIT AT Sho FEE MALY ARR, REE SETHE, SAS feRpID, _imp_puts LEE RSTINAALF COS loader) 2% hello world F/T GEM St a HCAS Fa F 30 (RS. FP RAMEN] LDR HORA PRM, SLM CWMALS PC AAR ER. LP] BLAKE puts() wk. TRL, URW MERE EAE, aL RISA > OS loader fine Ay HEIL. WEBI, GUA BERR SRR. TEATRO TE, CPU BACHE 32 fH Get ae SIRNA WHALE TERE. BTL, WEL —TVL ARM BERETTA AL, UE ST Se ASRS ECU ADRH. IR Thumb HUaR APRA A) DAS I PRE CLEA eR Bs AY SB RAD GEATRRID TERRA Chunk function). WHAT ARM BCH AT, SA BL HOSA DHA SRB. EAE MURMURS BL MARAE BLK, WT RANFESS IP RET HIBS TTA. FERPA (thunk function) MBA WSR, LCS INSTAR” HS. ERR), TIES ORR. ee FAS AT AE SL: hetpyAwww.catb.org/jargon/html/T/thunk.html > P.Z. Ingerman 7E 1961 42 UCU T thunk RES, MESHES, Hem, i et PORE GRD) WAR 2se, SS aA. RARE thunk, BPS ALES 18 wT Rie $e@ORV IBM 8) “thunk” HATE, HEAL 16 (073) 32 AIM, 32 ESA) 16 AMES “thunk”. CEM) 3.45 ARM64 ccc (ON GCC 4.8.1 He Lak (tetaite ay ARMes EENE, 1 ARio bBo. 4845§413.15 Non-optimizing GCC 4.8.1 + objdump 2 c900000000800500 : 2 00530: scp x29) x30, (sp, 8-16)! 3 sons ov #23, 8p a 4onsaa: adrp x0, 490000 <_init~oxape> 5 add x0, e bi 400470 > 7 or M0, if 40 5 cogsag: Idp #25, 430, [sp] 416 9 40080: ret 0 uu 2 rodata: sestleltal 347 Thumb AR Thumb-2 Bist, HLLEL SBI 32 RAIES. Tvl, 04 BORG AVA TE REMC NT WRB, ATT 64 4h X-RAP cae SABYSE BAD. SAR, REF AGAL BLAAL W-SE SKE 2 ARTY RU AE aS IR 92 AEA. LGRABEFEY STP (Store Pair) JESHUAAS SAREE (BL X29,X30) MN FP RRSIAREL. BURR MESSE Oy DURST IEP ERE, LEAST SPA. BY BARE HEROOPECEL. ARMO4 E43 HUA ERTEE 64 (ILE, ARATE RET TENE 8 FAR BRDAREF RSAC 16 SFT AL AAA a TE a RES ML Gs, SMTA AL MAAT. OM, BARS TEAL SP MTR 16, Ae IEE ATA STEMS R EL. MEP “RSL pre-index” #84. AMET “HEIR Tl /post-inder” OSIM, ARAN, WEA 28.2 We LL 3 SBI x86 IRS SRMRIEINTHE. SUARHR ADA PUSH X29 Ail PUSH X30 PUES. te ARM64 és X29 STPRRALNZSET FP, X30 AE LR OUTED PS Nar RR CSP MAT SAU eT OARS IE SP ATE X29, EDP, RADI EAL. ADRP fl ADD JESHIEACA, 4 “Hello!” ABRAM EIST XO HAH, ATTA SwINM aM. ZEKE ATTAIN, ARM ToS ORR MER MESIAL SRAM 283.17). HLL, HIRATA Ra SEAT ROTEL. SBA ADRP 18 AKB IEA SHALES XO, MSHA ADD AATINAIS STITH RA AH AS. RAB 28.4 Fe 0x400000 + 0x648 = 0x400648. MEE TF rodata BORBEMY C7498 “Hello!” fAtsil. PERK, BUG BLIPSIAN pusQH Sk. AIA SHUTS 3.4.3 He MOV JES ADRES WO ACERS. WO RE XO SAA 32 2, dn FAFA. a m2 16 32 tt xO. wo main) RGU XO STRICKEN O. HARRAH HOR Aik BPH Jot) 4 BEUBI] ‘TERESI XO AETFIRANIE 32 (0, RU WO RETERR? GOTMOLAT x86.64 HOTA, APACER REA, #33 Hello, world! 19 ARMG64 E6715 int UR HHAN 32 (ORG. ET: 32 AY ime IA IEBE, KO AAEARHII 32 PAMGAT DRATIR, RAW BWLT T-WREHBAL, HE mainQe El 64 Li. HIB I.16 main03EH uintes t BR Hinclude Hinclude ee ties a CL SR ‘AYES RA Se EA TT TEI EAR FARCE sata, EAL sbss BAREE WEE LAINA XMS/EMS /Y 727FE ZEA. SUS P Ae EE Ara TEAR PL Pee al HEC OAK BRP AMNTIERE MPS REM CHRE. Be PowerPC PEAT T SS. 3.6.2 Optimizing GCC KIMISBUUE AT “aed” OE. 20 emt ide CAR) FESR 3.18 Optimizing GCC 4.4.5 GLARE) THello, worlalo22\s 5 + fonction peo! © 7 set the GP: si easi addia $2) } save the 1] function from the GP te $25: 28) ext string to $4 ($20]: Jump to puta(}, saving th yale $25 ura address in the Link register: 18 iia 34,54, #10(3LE0) ; branch delay stot 295 the aa: 20 Ww §31,28(8sp) 2% 1 copy 0 Exon Szazo te Sv: 2 nove §2,80 23 1 return by jumping to the RA: 'ap,32 + branch deley slot ERGATA ARIS URAL SURG 7228 GP ay ESNOCE, JT ELIS CEA Oak NRMP. Fat, FUE RA STRATE ER. APE] puts RCPHLT printfQFA 2k. 1 pursue Sea sieht, §Wiaict LW CLoad Word) 42-S0R2 7925 264782. UG, SRT 16 KEHERLAMEE 16 (tbhieb ele LUMLoad Upper Immediate) fil ADDIU(Add Immediate Unsigned Word) 41-2 HIS4 7228 LUL REY Upper Vag) aE PREP ORBIT 16 fic. SULATAT, ADDIU MISOBRERMALAMEME 16 ROMTT RAZR. ADDIU HF ART TALRABS LG, (RSI I RGR”. 4 RAL ESA ATS, (ALR RATA. JALR (Jump and Link Register)# Si31825 AAEAEP WELL, AW putsCER BCI SUE, FF LAER 3% LW SHEE RA A eaR. TIL, MIPS RSMAS ARM ASHE Fi fE, FARA, FET RA SRM ORE Be TA. Fe” SAMA, STA GOR GRD RSM aL. PL, FEDVTICA JALR SHORE, BARA BFPEMMLA PCB, BY ADDIU ja faba Lw dA Sich. 2B 19 F719 LW (Load Word)i#>. FAFABAHLRH AY RA (LUCIE. TELL, HS HAT HRI Fl es 2 1 2 #22 71 MOVE 1244880 (SZERO) [ES HEASAUSVO). MIPS ATH REER, CAMA HO. AIG, BY MIPS HRA RU 0 RASA RGR S HS, BIBT Ae FSO PARACEL O OLA. DMFT DS MAE RIS: TE MIPS RBZ, RTE RE ABZ NAAR CHE) 4. THUDNEL, MOVE DST, SRC Abas! AUIS ADD DST,SRC, SZERO DAIL, AP DST-SRC+O, RAVAN EBSA. FLEA ML, MIPS HERA RA AUETT AEMIE AY opcodes TP fil opcode (Kl KAN PSMA IE ARE ET MOVE FB 1N CPU HIS HET TTR Minis CPU EMEA CRUMP GAES, TOT CANARIAS DA) ALU (Arithmetic logic unit). 224 FH HAS SBLEE) RA PTTL, ede MOURN A EL a SE. BE LEWIN, TUG ADDIU SAT ist, RRL. © BEAKER ALIANT (Branch delay slot) F468 OQ FAMPS SHAMWAL, FELMR CI. 83% Hello, world! 21 RNBREGA IDA ERNEST, RB— FRAT RN ER, (gnu tocelep >> 16) none agelu + =Dx20 90000008 la Sapr {_gnu_locelgp & OxFFFe) ‘the A to the local stack: + 9000900¢ gra, Ox2000ae 4 (2p) missing in the Gc assembly o S5py 0x20! var_10(Sep1 jon fron the G2 te 3t9: StS) (puts & Ox#FEE) (89p| ing in a0) lui Sab, (S100 >> 16) "Be ce pote | saving the zaturn address in the Link req jalz ctext: la $a, ($260 5 OxFFFF) # "Hello, world!" 3: restore che ®: 24 text: 90009028 a Gea, Ox20+var 4168p) 25 i copy 0 from $zera to SvDr 26 text: 40000026 rove S00, Szere } return by junping to the PA: ae sea acdiv $e, 0x20 1S FM SEAL ARBRE GP HK. SAB AERBUANE, GCC RCA HE NBL a &. RUHER GCC AAMAS. Pa, HINT RTE GP RA. ERR oe AY OAK Sean. EEE RT puts RUBIA SEEN ESTS AF AS LR EITM STEAM “URI” SEA. ALE FRESE AU EL. UAT RL ee Ba OTE Ccaller-saved), FALE: AF Se REW nA! ae 3.5.3 Non-optimizing GCC 4835784 3.20 Non-optimizing GCC 4.4.5 (7L#efh HH) 1 8100: 2 vascli "Hello, world! \o12\o00" } function pro! ave the RA (331) and EP in the stack: addis $59, Sap,—32 sw 931,20(95p) su 24(83p) # set the cP (stack frame pointer): nove $fp,85p F sat the Ge: qui §28,8hi{_gnu_locel_ gp) addi §28,$28, #10 |_gav_local_gp) + load the alldcoss of the Cext. string © BBE. AF OCC MRA, TRILIRA S OTMEA LM ML. BILL, GCC SREB SZ PART Ae EH CE SRILA SHOE RSE 22. BADR RR CM) as lui $2, ¢hisoic0y a6 addi $4,$2,$0(81C0) Li load the address Of puts() using the GP: 28 dy $2,4eal1L6 (puts) ($28) ag op. 20 + call guts{i 2a nove §25,82 22 Jalr 825 23 nop; beanch Selay slot 2 25 ¢ restore the GP from the local stack: nove $2,80 + function epilogue } restore the SP: move Sep, $0 restore the 2A: ore the FP: jump to the BA 3 sat P iw $20,16(8fp) set register $2 (3¥0) to zero: iw $31,28(9sp) Ix Sfp,24(8sp) addin Sep, $5132 nop; branch delay slot SEEEPRIL RD ELNY GCC SMETANA « JIGME, PR(TTAT LAME BIARITIE FP 2 ERR HGEET RAL, TL YE4 3 A NOP CBBMED HS. CR 3 TERME SH, BOD, BI MES ALTARS 2 SEP AU URE RITE), PE APE AERA, PILL GCC MER RED SIF AZ ca NOP ES. id, ERA EM. GCC MAGA a HBR NOP HRS. BI ADDR 4 HEIRS NOP HHS MAB IDA BET AR FDR RES. oi #87844 3.21 Non-optimizing GCC 4.4.5 (IDA) 1 .texts00000000 main ooa000 noosa” vy: 4 -text 09000000 var 8 5 -text 0000000 var 6 stex::G0000000 7: fenetion prologue, & ; save the 8A and FP in the stack: 9 .text:99000000 10 text 00000004 11 .text:00900008 12} get the FP (stack frase poi 13 text s0000000¢ Le; set the GP: 25. .text 00000020, 16 .text 00000018 11; load the address of LAs text 09000016 tex: 109000020 } load the air 21 .text 00000024 22 “text :10000028 23 + call putsi|: 24 .towe 00000020 25, text :00000020, 26 ext :00000034 27} restore the GP fr 28 .teut:00900038 addiv che text atring: addin 1" jar Local stack: he 29 | set register $2 (SV0) to zeret ssp, Sea, stp, stp, Sore Jape $40, sab, +f pute|| using the GP: svt, Sat, 509, st9 Sat, Sse, 0x20 Ox204var_4 /Ssp oxa0+vax_8 Sop) Sep _gmu_local_gp 018sp) (alleLLoWorlé >> 16) # "Hello, world" Sy0, (alieLloWorld 4 OXFFSE) + "Hello, world!” (pute & OxBFEF) (ap) gzezo : NOP seo grero ; NOP cx20+var_10.8¢9) #3 Hello, world! 23 30 . text 90000036 nove Sv, Szoe0) ronetion epilogue. 32; restore the 8°. 32 -texe: 99000000 nove ssp, $tp 342 restore the PR: 35 .toxt 00000014 Ww $ra, Ox20+war_4(Sspi ab} restore cae £2. 37 ,vexe:oon00048 w Sfp, Ox70tver 8 ($sp) 38 Ltext sognpo04e addiu —— $5p, 0x20 jump to the RA: sex: 100000080 iz Sra 41 text :0000005¢ oe Sat, Szeno + NOP EMT IS THT TRAE BA —IDA WAM ili T LUVADDIU HEN, LENLAA AAMT LA(Load address). SIRS ATT 8 SEA! ROMS CI OR SPARALIELY MIPS Fi. MAA A RIDA PARTE SEA NOP AULA ATA IAL SES} APE. EA IDA Fee A aE Sed SUA NOP 48S, BRUM SR 22 47. 5 2647. 2841 ATONE SAE “OR SAT, SZERO”. RELA, CAIN AE AERESAT ED BS OUMTMEH. (EMAMLUL, bet A RK CPU HY NOP 14. MIPS ALE (the) eRe FESR AEA A NOP 18-4. 3.5.4 Beit ARRAS ERIE LAL TT PELE. PERE Tm, RAT ANe? PREC AA print) RNR RAAT RA BYP SSAA GP IMA, PATIENT EHR. UL BURR, CATHDSUMARM FAA, BRABUS WAN 23 A. 3.5.5 Optimizing GCC: GDB MMA HHSTFS 3.22 GOB RE E roottdchian-mips:~} goo bw.c -03 -o kw rootcebian-mips:~# qcb eNO gab (en ian " ee Software Foundation, Inc. and "show vazranty” for detail: Figured as"! For bag repor het: //1a Reading symbols fron /root/hn... {oo debugging symbols found) .. «done. (gdb) main Breakpoint 1 at Oxs006s4 ) ean Starting program: /root hw Breakpoint 1, Ox00400654 in main 0) (gdb) set stepemede on (gdb) dieae Dung of assembler cede for function main: ox0¢00840 : lot gp, 0842 0x00400644 : div 9p, ep,-32 ox00400849 gp, ap, ~30624 ox0400640 : sw ra, 28ispl emainti6>: en gp, 1 (9p) enain20>: lw £9,-37716 (gp) ; jalr 8 0200400660 : addiu 40,a0,2080 24 ace (1a) oxo10066s : lw Ta,2850) n00800668 : cove 70, zer0 axo0400662 cmalneto>: 3 0x00600610 : addiv 9P/9p/32 Bnd of assembler dump. gob} 9 x00400658 Io main () jadbl s oxBog0usse in main ( (edb) = de2abededd in prints () from /Lib/Lsne.s0.6 (gab) x/s 920 0x400820: "peilo, world” (ae) 3.6 Het x64 Bi x86 Sit REDE HH MSTTEAET LE, OSAMA] 64 (eHRT TIS A ARIG 32 CHIEFY ie, WE AVORTEAITEHIS, THE CPU AUT Bien he Raa Si-O EAE, 32 ACHR FRM LILA T + PRUSHTSE ZEN 64 GESTS 3.7 DAL 371 8A1 pH Fis 32 Hee MTA. push OxPEF#EFFE call Wessagezeen 372 ME2 PABA Linux MEOH, SEMA S ATAAT HOARE SA ™ pushq %rbp. nova rsp, orb mov $2, ted call sleep popa Sep set #45 ARFSNARER RIFE function prologue) AFAC(E AMMAR IN— RAR. SITAR S ABUT: push abo nov ebp, esp seb asp, ROUTES MOTI: ZTEME ORE BBP S72 AS. HK ESP MOIETIES] EBP ZEAE. AUR BERRA SE, LA Cn AR aaa Pile Be ee eA] FER EAMTIAML, EBP SPRL TOBIAS Bayh) LAR HEL. BR SAREE ESP STARTER TSM, (DAL ESP HAAN Ree, HRS aE. BABIN, FAUCET RE, BALE PRAT. UO ERP TERE, METRE TLR ZRAANAH A(callee). mov esp, ebp Pop ebp ret. 0 HOARE ANBAR AMAR, ROT UACREA RS Se SIA RAE AA ARS OE TE 10 HERE, PATA ROE READE, FAA BS LAB 36.3 WY. Boe ‘BRU OLELE LEE EMAAR DABER TE, BERLE CPU Area aS aE FTE RR te Be! REP x86IxG4 FEHY ESP HA BIRSP BEATA. PLS ARM HHT SP WHERE. SR(GRHLB A WLR 4 PUSH 4 POP, 7 x86 #1 ARM Thumb BEC SRE AH. PUSH G4 2M ESPIRSP/SP AAP IN MNET MIS MEARE 4 32 A) BLS (od HD, AUGER Al 5 ha ES RRS TH ETS POP {8 PUSH FES REBRTE: ECAMRAREL (Stack Pointers HS AER ZR AE UG, AIL AL GIVER ISM ia Ey He RET BAHL: 4 ak 8. A PRIRMEZ IG, Bett, Bl Stack Pointer SPAM OHSWLFERREUERE. PUSH 4G akeb Hele tT AI fi, TE POP SoBe MME. Herd “TE Fak FARRELL De ea WA = HUAI RARE, (ER! PK x86ix64 MRC AIRST » HL ARM fERAISE EIR ARM OARS I AER WRB, (descending stack) AYP HBAL CARA Gist, PEPCK, PERE UDA RCIA on STMFD/LDMFD, STMED/LDMED “45 a0-kanciia YES «THT ARM EQGSHER (ascending stack) Ay Peal dS FARA BA, AAAI EAP eMC AR UEC, ia STMEA/LMDFA. STMEA/LDMEA 4148242322 IRIE « 51 Wt ase K LOT BAY “SEAMIBEL” HM SRA AIGA MY UG”, RAR AMG tt a AR AOPEA TE CALE. ARTS NG AWARE, SHIRE CM), ES MBL IIR. 5B BGS T GMA. SE SEALIAR UAC, CEARTA AMAR. GBM A FEARS. WL “Evheap” 41 “Bi/stack”. “4%. AC PHUT ILE, MERMRRUMEAH B TT AH DPE. MULAATAIE ET sensei HeteiBe k— & MMA ITS AB TCAK RIT, AT Bie: BARE EM) REALDA IPR ARE OR AA, BARAK ARC a MARR), RARADT TEP ATS FPR AEA SK, CRMAE 1 PRA. © 16M meplenmikipedia.org/wikilCall stack. ieiie sed AVIRA. OHHH Store Mulliple Ful Descending, Load Multiple Full Dscening, Store Mattile Empty Descending, Load Maple Empy Descending «Store Mile Ful Ascending » Load Multiple Ful Ascending tore Mie gly Recending, Load MulGple Empty Ascending. PI Fllrmpty IM. War Es MALE MASH HRTEM, mata ‘Full stack, Ret MIHSMsRS i. EF APTA RNB, LAA MERAEE Empty stack Bse a7 AAAEMTAY. AAI Sk bytes URL, AFRFH. THUR, BATARLAA AR BRARAMUERH AL, RABTAUAR EMM RSL, CAMARA ALR ie A we, APR. HA-MM AAP RPMI: EMS RAR ES, ATT SAUER NIN, IC SR, CEA RE SS. BPA TAMRAC, BREA BOEASHT. 5.2 tab A 5.2.1 ARERR IE es x86 SALE call ESR AUBHBUN, call SSL PRE TEE ZE call PAOD BRGRZLG, BPRATEA ARES, BEEBE SEEM. CALL 44ST “PUSH Ja luli” 90 “IMP ei kotbbk” ava . YOR REA ROT BS, SMART RRURELEHE, ARIAL Mh. ata SE” + “IMP i EWWIE” 84 = RAHN, Mace. BEACH. Hae: void £0 ( 4) “POP iB ft He SURCERT MSVC 2008 2 LEMS, HS RUE: er\tmpsoe? es Microsoft (8) Copyright frags.aan bit C/Ct+ Optimizing Compiler version 18.00.21022.08 Cor 80x86 evosoft Corporation. All rights reserved. s8.cop e\Enpe\es cep tél = BLELLS CES TWA MIM hte 2faevaNne PROC ie } File c:\tmps\ss.crp ening CA717:'£ + zecursive on a11 control paths. Funct ion wi] cause runtine stack overflow P Line 2 pach ek. nov @bpy esp Line 3 call 2rmevanxz £ Line 4 pop abe. eet 8 2eagynnn2 ESDP ie BRB, MITT ALTON”, A ETT TA REIT AR” 2t@eYAKKZ PROC if fe cz \enp6\s5. cp 22 SLLSUE: + Line 3 jmp SHORT uL3ee 2e@eyaxxd ENDE if 28 HALTER OVATE, GCC 44.1 HARRI CISERA MSVC “Each fBAL, RAE GCC TERA fam CEM) ARM ARM FEPHEGUE IRSA, SULIT. 763.4 er. BUYER] “Hello, World!” FETE DGB ARE LR (link register) FER. (LE, MRAP SMI, BREE He A ZT (RE LR APRN. TE. ELE URE OF Bab) DRE LR ARAM. RATER 434] “PUSH R4-RT, LR". JFL ASLEE “POP RA-R7, PC” Rea MMe A ARH een. Tien eR "VN, STP IE LR AE AE NR AON TLE HO, CAL) LADERA TSE. Roem Beat “mB Cleat function)” ®. WP RHR, EMME LR SE FR a. ‘A RO AA A EA ASB LA SSAct a ALAA SARI RAR AR. ORL. AIM iC PRIS PT EAS ae DBA. RAMEE FAL ASEM RBA TESMIMDLEE RAM EAE ASERTTSRINBETE, STEM EL TRIS PT REREAL x86 REP. AA SF RAO MIN, LOR RMCS BIL “TTTBPC” WH. AMET REHM. SIL 83.2 HH, SBI, 152, 154 TH 173 1954 BY 19.17 B, 19.35 prEANe. 5.2.2 SRe de x86 SF GMARA TH, RFU ARLUREH odecl”. Ul deel T7TRUERG PLEO MET: push ara push arg? push arg] call f ea6 esp, 12 3612 YEH (Callee functions) HALA HARM MB. {BET ORM, Pa EMSA TREAT AE SSH agi, EA WDA RBH ane 0 aee2, (EE IDA HD arg 4 ang, EE WA SEW are 8 AHH 04 TEES HALIM MULE (Calling conventions). MEAF RINE, FT LL EMSH, WUTVAT MSE. SHAN ALATA ARURTEALE. Flin, PKA ATLL Cheap) TILA IEZ HBR. TEEPRAB I APL. AIH] BAX FF TERA BME SU. AMRIT IL. CR ALTE x86 BAA ARM HEL, ARABS RA Ry THER MSHA. MONET a Re BYh. WHIT SEA MNBL HI EAE T SDT BE WROTE SHR TE, CHR BWR (SAINT) BAT RSULO, PSA. RATE printh() RAR: peinti("ed 8¢ ta", 12307 SD SAMLS UE prime SAS 1234, AEE AERA 1234 ZN THE BL EAA 8 @ nfoconterarm,convelpindex jopopic~eom.arm doc faqs/kal3785.himl. BSF SCHR SLARME RIS “A SHTAH” D GL, ZPD A VAX VSL, WIT eal SAAR AR: TEE R, AREAL EA ALE ABE Ae ABI AD 3h E. VESPA ANOS, “AIRLINE ORR” HORE ® WIHA stecall, fasteall, thiseall %. Windows Lit-#PHHFH stdcall- @ Donald Knuth te (The Act of Computer Programaning> ~8H0) 14.1 Wie TSralT FAD. RAAB RAL LDEA TAI, HALLE IMP RRaEEU TRIE T LEM DRED GSM. Knuth HLA AEA System360 | Al BSE 29 HEAT, PPD moinQ RA ARAL AE, BATT LH FE mainO,main(int arge, char targy{))E% main(int arge, char *argyf], char *envp{). EE CRT TMT main ihe AAb LS PEE SH push’ envy, push argv usb arse call main EL ERATLAT EEF ESB mainQ MRE DLSA, BREATHE, SERIAL, RERSMS RA MBT . RAG mainQ EGTA % main(int arge, chactargv[]), EFF AAP FER, AUVAEWTRET SAL MRMLEMS, CATEL AAA main( int arge), EA BRLATT LET. 6.23 Ae BRS SELL ER REWERERRIAEL (stack pointer) Jp, ASK RITT eRe BA Rea — Hy ol A Pee aE AZO). OTL, CARA T Seb aE, ATE PR I ARE BUS IES AE HART LEAR DL SERIE AAT HSA FEAR AE ELL AOR AF RE RAAT. 5.2.4 x86.alloca() BE alloca( yi BRA tS mi» ° A, alloca EATARAE ABRAM TE, ULL, ES mallocQ eh BRT WATE A. HARA SMR ESP HI, RGR BAZAR, BRIA alloca mT AUG. PUL, ARAN ARERR treo) Bi Bok MR ak 1 eH HON. alloca() HBV IM Aik RII. TRIM, ARSE RERGE SE PLATA UE, ERIE BSP NEEL. OI ESP ay Tai) SEPM MINT. RMR: fifdet _cwoc_ Hinclude // GCC else Finclude // sve fendi finclude void £() char *bufs|ehart)alloca 1600); #itder _swoc_ sopeintf felse Lonprint® (but, 600, "nil &d, 84, S6\n", 2, 2, 23 /f move fendi fd, Sd, Ad\n", 1, 2, 31 MY GE f, 600, pute (bets i snprint) BUY R270 print) BAIT) REE AS. princt( PHM £4 Ria A) stdout Ct. AE LEH terminal Rconsole —K AIHA), il snprin WHEE VT buf BA CAT BOE). RAT EL puts()248cA HEHE buf It fs AAA stdout. 44%, printf) VL IR_smprint() AN puts ARBEIT XARA AME MALE. OAD EI 2 PH. SY SVC GAA, LISA AUT aE CAProgmam Files (x86) Microsoft Visual Studio 10.0;VCertisre\intl FM local 6 asm il eblstk asm T4258, 30. #e Msvc. AUC MSVC 2010 HELIN AVI. GAIN RENR A #82151 MSVC 2010 mov eax, 600 ; 09090790 call _allaca_probe_16 posh 3 pasn 2 push 1 push OSPSET $862672 pesa 600 2 oon00zsex push esi call _snprintt push esl call _puts add esp, 28 + goon001cH HEF alloca() Hi LaF AEA Be BLAS I 90 FE), SPAR LR HD, LE PAT TH RARFS EAX STFC allocaQ BME HSA. FIVE alloca) HZ A, ESP APTI 600 FH AD MURAL, FADE buf GCC Intel iff 79 EN, GCC44.1 RRS SR, WRG 5.2 GCC47.3 “100: steing "ni! &é, 8d, Sd\n" 7 pun ep roy 0am, Sep push ebe Bub esp, 60 dea eax, (esp+381 ana ely } align pointer by 16-bit border mov OKORD PTR [esp], cbx is mov D0RD IK nov ORD PTR ov OHORD 278 WORD 27R LAT: CO 5 "hit 4, 8a, d\n? DRORD PTR Lespt4], 609 ? nazlen 2 nee nov BORD PPR [eso], abx ay call pute mov obs, OVORD FES [ebp~4] leave ret GCC+ AT&T Ht HEP RIERA ATRT BRS HSHH 5.3 CCC47.3 sce: string "ai! td, éd, Ed\a" t BSS RK 3 pushl Sebo nov] 4e8p, tebe pushl eb subl $660, Seep eal 39(8eap}, Sebx andl 5-16, tebx nov! — ebx, (esp) novl 33, 20(¥esp) novl 52, 16(8espI mowl $1, 12(Resp nov] 3.500, a(Sesp) nov] 3600, ¢ esp) call _snprintt mevl — Bebx, (esp) call puts tmovl —=4¢8ebp), Sebx leave ret EA Intel RAMS AT EL H FU, “movi $3, 20(%esp)” ATHY Intel 3-687 “mov DWORD PTR [esp+20], 3” fe. FELL “AFT RBM” HAAG, ATRT PHT ALERAR ETN “MEH OER". 5.2.5 (Windows ) SEH S708 S58 DURAUY SLE SEH OR. MARMILRARATLE. ARTE 68.3 BRT ERSTE 5.2.6 Sopa te ASHE 18.2 RETA. 5.3 BRB aR oA ETE 7632 ROR, EAU, NAPE AAS, BER TT PT Hts ee Espa angi, (2 1DA #i2% arg 0 ESPs arg2, (IDA WHE% are 4 ESPHOXC ang, #E1DA 2% arg 8 5A BORE ABRQAA US”. OS” ASC. EMBAP ONE? TORMORM UG, RARE HAMREDSRAMA. CHAT RN “Re”. “HENAN”. TRE PRAT. Hrelude catdto.to wold A111 1 Apt ae, be2, 6-3; 32. waren (Lae) void £2(1 ‘ Print (Md, &d, ad\o", a, bye): int main!) 4 Ane fai} EAT MSVC 2010 S525 149 S80 BTR A 5788. 5.4 Non-optimizing MSVC 2010 $502152 08°84, ‘Ad, 0", Jal, 008 of = -12 ; size = 4 Bis 8 } size = 4 pect p size = 4 Tea proc push abe ror aby, esp sub esp, 12 nov TRORD 28 a6 [edn], 1 nov DRORD PTR b§(ebp], 2 mov WORD PIR ef[eep], 3 nov esp, ebp pop ebp ree fl ENDe “eg = 12 jure = 4 abs = -8 j size = 4 cs = -4 j size = 4 2 2700 push ebp mov ebpr 880) sub esp, 32 nov ax DHORD PTR _cfLebe} push eax mov eck, DWORD PER _bS[ebpl posh eck nov dx, BKORD PTR _aS lebp] posh ce push OFFSET $562752 7 ‘8d, &d, €a” call DVORD FR __inp_printé add esp, 16 gov esp, ebp pop be ret 0 2 ENE. main PROD push chp ov abp, 3p call #1 call £2 pop eb ret 0 _main END? HERS eA se Kh 33 c:\Folygen\ Microsett Optinizing Compiler version 16.00.40719.01 for 80x86 Copyright (c: Corporation. All rights reserved ot.e cr\po2ygen\c\st.c(22) : warning Ct700: uninstialized local variable ‘c' used 2 \polygon\e\st.c(1) : wazning C4700: uninitialized local variable 'b' use pad local veriskle ‘2! used 40219.01 ALL rights reserved: 1) a Copyright iC) Miczosert cozpt /out: st-exe 3t.089 ORE EN RAE: ci \Polygon\erst 1,2, 3 A, Rath! BRATS LOMA RNA, CREA OPA CA. DORA E THEE. PATEA OllyDbg AIA MEF. (OR 5.1 Bia. FE5.1 #7 OllyDbg #7; NOMURA, POM AEATEA a, 6. BME, BATHS OXI FP860 Freee IP AUG. TERT ROM, HULIOE 5.2 Hin. F452 HT OllyDog #F DORM AQOYSRMW LER, NCSA S MERA. BARAT STARR, FURST RRS AA MAAR ARGH TERE. FR MBL, ER MT, ORLA SP A SBA uM waza EAL) PRRCEUSTRATM]. DL, AUMTIAEATSE Bag OTE 6 A. TRI OT, BMRA CRIP AeA ZC) Ae “ha ae Take T AANA. PA, RMA BALL, TTA TT OA APRA TENE ERASING? BATTAL VLE SONAT ZTE RAR I Bat, BUH EO ARRETTT. MEP RM ARS AK, WAORAR, STUB AH 5.5 RDA 55.1 @a1 SQRUGAL MSVC Habe. RAAT PSURERE, RSET EDIE 3 SHB. LEMERCAEDK ABE? RAL MSVC HARA GETL 0x", FREER LMT? Wf GCC HIRD SATA? Hinclude iat maint) ( printé ("dy td) 3dla"ly SRASR GLI 55.2 BiB 2 ie Bik PEATE. ZAMSVC 2010 Ca /Ox 20D RTI ARATE EAT F. 384781.5.5 Optimizing MSVC 2010 3568103 DB "Rd", Gal, OOH pain PROC push 0 call DAORD PIR _imp posh edx posh eax psd push OFS8aP $9022 call WORD PTR _inp_printf add 59, 16 ret ein ENOE JESS 5.6 Keil 6/2013 (RAL ) SR TIARE ARM BAS main PROC post (rich nov 10,40 BL time ov rLsxo ADR 0,110,321 EL _2peintt ovr, 40 Po? (r4,peh ENOP 50.32) ves "ta\n" 0 JESHRS.T BKeil 6/2013 (ALIA) METTAT Thumb Rt rain PROC Pu r4yte) | vows 20,40, BL tine wove rico ADR £0, 1.0.20) BL _2prant wove ¥0,#0 Pop. END? 129.201 nen “dio, 0 HOM 5.8 BGCCC49 (ARE ) STRAY ARMG4 ESRD stp x29) 430, (ep) “261! rev x0, 0 add x25, op 0 bl time nov xd, 0) dp #28, 30, [sp], 26 adrp x0, 300 add x0, 20, 1102: b printf Leo 16) Ssp, ~Ox20) S62, (_gnu_local_gp & OxFEFE) Sea, Ox204var 4 (Sap) ow Sqp, Ox20+var_10($ap] w SL9, (tine & OXFFFE] (Sep) or Sat, fxezo jatr gto owe Sa, Szez0 Sgp, 0x204var 19($89) ga, |SLC0 >> 16) 4 "aAn" Sta, [printf § OxPFPE) |Sep) Sra, 0x20Ivaz4(35p} Sal, |SLCO 6 OxPEFr] # "#a\o" gal, $00 ate adéiu Sep, 0x20 5100: "aa\nt 4 ORTR NBBF: mainte 86S print MMSSMRE MERAY Hello, world! FARMKIEE. WRENS WNT. \de 6.1 x86 6.1.1 x86: fe 3 RK Msvc 481] MSVC 2010 express 447% LARENE, TAS) PALES: 50.0R ands etd; cotd’, 00% oerser §363830 call _printé adi esp, 16 + 000000108 iS "GEERT Hello World FUPALEAS. RRAHEB print RAM SMLIEIE ABLE, BAER NE E32 AUERRER, 32 (CRUALISET-AT int UMAR AB NSE 32 fla FATAL. BULA, RTL SR BARAT 44-16 (EW) AVANT. eH EMCZ A, “ADD ESP, X” J2S(iE BSP AEA MARTE. LAMBA AMSA: RAB AAT A 1 odecl RIFEPE. ACHAT GEDY 64 EVEN Sr ea APH REE RATERS OM, FL RES ZARA ADA Se eT ARI BS MceZELAN “ADD ESP.X” HOUT ATE, HCH SIR ROTA ZETA. fl: OLF. 427A call 24 ling convention, SCA “LALIE" “TABS” SHEE. BOF print 4 Ri AL 37 MP RTE PAF HVS OA x86 joni tae? push 3 e211 sub {0001880 + takes one argunent 28 no arguments (26 no argunel ‘ext: 1001138 7: takes one argurent (21 ext: 1001137F add esp, 8 } drops two arguments from stack at once HE OllyDbg WFlisk MSVC Have RYE BLCETUTE OllyDbg PNNAiZ fF. OllyDbe ALAR EAI user-land (JAI)" 7 li) win32 debugger. Ef MSVC 2012 PR MRAP ONIN AR, LVM 38608, 4 MPLA AES MSVCR*.DLL 28383. Se. RAE, DUARTE debugger HIG HEAL AAR Sere A RCL A 7E OllyDbg SAM ATBUT CE, HB TULA HEA mtdll.dll, QTd FO BERT. ARIES NB BE CRT-code %. FA IMZAATILE] main aK. FA MSVC ‘HF main( PH AHPC (CS EE IPA, HTL AY NR BF a BEA ETA] main cA. SB 6.1 Bia. FA6.1 GH OllyDbg: HF mainQeesen aah ws) Sidj PUSH EBP HH, He F2 WERE, HR PO RUE. RAMEY Tit CRReode, BY FRAIe BSR RS bi CRT (UB. WH 6 FS St, SEB 6 AIS. Un 62 Firm. FA62 (FL OllyDbe: ABH! primto.z dates Jin}, $82 Hi Fb PC FEI CALL print #34. SEWER. OllyDbg SERA SMM. ARIES A, EP ATARI, BTL BREN. TEED, FIR % OllyDbg SAGAR, AAA /LAP IAAT ESP SAP ET lt. ELA CCMBNE? BAB debugger WTA, A 63 Bia. TEAL 3 Fle HABLLA. BUF OllyDdg AVRERTI. OllyDbe HEE EU printh VE MIS SHH, RARE SMG LUEE Br] A “MEULAT FREE 38 salem CEM) TTC AT DL PRIN Besta prin OHSAS Ih if FRSA TAY “Follow in dump”, BF BRIE THES EARTH SUL TE ER Ree Fe UAT BUR F boas fe TB RAL ADRE TT RIA. MR LER WARRHRINE RAE RABEL. CSTE, BATAAN LAURE, ERATE FER FS 4, PIPLLAT (Step Over) RATS BAIA 64 RM BAR [63 (BIT OllyDbe: WH PUSH HHS 64 pinay soa eh ERRATIC CLEA BADD AHR MRA WRN 6.5 F- Bios (Al OnyDbe: HUE, EAX 3 PALE OxD CAP 13). SMALE printht) ROTATED AY FFT AL BRA MELA AL wl. EIP SPREE TRL. eh LE eT CALL print $4-)609 PC. Sukbelnt, ECX #1 EDX SAMRAT: printf) ACERS (TREAT SM PB AS JADA TLGL ESP MMAR DSA REE FUT printh yi Heth FF FAA 3 BRUNA RAD. LAL cdecl BAER TE: ESP fM{RAS: IMAL ITO Cealler function) ‘i HES MCAT HI NIHEAE A. oheehe F8 BE, GuiF “ADD ESP, 10” 4, AUPE 6.6 Bas. SAIS, MAT GDF Ay BS 16166 ‘11 OllyDbge AH “ADD ESP, 10" HEA ZL LS BSP Be¢PARLUAT ML, (LR REI NTMI CRU EYAWR RUD, BTELORRECERRHTAT SP ZA UE uk) SPALL IY T WR Cnoise) BLA MEBIGR (garbage), LET HOME. Bohs DREAM INET arr, APS SA DRA EIEA the Gcc BURR GCC 4.4.1 4BBR-MEFE, SEAT IDA TF ap: BOF printh\h HS SACHA 39 = dword ptr -10n = dword gtr -0ch = dword ptr -8 = dword ptr a push — ebp mov ef, 2: end esp, ORSFEFEFOD sub esp, 10h mov eax, offset aADBOCD : Ip beta; cata” mov lespHldhevar 4i, 3 mov [esptiontvaz a], 2 mov lesptLdhevarCl, 1 moe [esp+i0htvar_10), cax call prints Rov eax, 0 Leave zetn main exe 5 MSVC EEniHVABIFAH:, GCC HeAINREF REBAR ATER. HME, GOO ‘GAA PUSH/POP Hh, TE AAENHCULET TE. GCC Al GDB GDB #142 GNU debugger. ZLimx F, RAE Pa SMP ORBLE. Ut, “9” UAT AT RAPPER debug BAL. $cc lic -g-01 SPRATT. $ gdb 1 BU gab (60) 7.6.1-ubunto Copyright (C} 213 Free software Foundation, Ine. Eicense CPi version 3 or Ister This Io free software: you ara free to change and redistribute ic. There 1s NO NARRANTY, co the extent permitted by law. "show copying" 23 "show warranty" ails. Bis GDB was configured as "1é86-Linux- rare/edb/buge/>,. Beading aymbola fron /acme/connis/zelygen/2...done. ROBL6.2 FE print\SVAw2 MoS (gdb) b prince Breakpoint 1 at oxe0se2e0 ARIAT AUT. SUA EYEA print) MURMES, IFLA GDB BIE AAR SRT. (ELE, iat BATA. fgab) run Starting progzan: /home/dennis/polygon/1 Sreakpoint 1, _p: (fornat=Ox8048420 Yaka; 8d; c-$d") at peinet.c:29 23° print#.c: Mo guch file ot dizectory. 2M GDB SAR RBH 10 -Mias. TASB aR, (gdb! x/10w Sesp SxDBDAE463 x0R04840 000000901 axt9000002 Gxo090003 cxogo4e460 GxADN9G000 oxc0000009 Oxb7e299¢3 9409000002, JEL RA(OX0804844a). I THERA, RAE GDB SERS ETO S 40 Beem CAD 0x0, toa. gxauieas2: echo ret 2 Rit) XCHG H4 5 NOP HE SGAL. RBS SEE IeUTTS AA NOP AES, SERRL, BORA RISC (i) CPU asd Ms SLUTS AY NOP IA. HUET BAB (Oxog048410) FPA RH LAI Aiba GHD): (gab) x UN Pete > RIC SATIS (Etre SL $8 POND RE Fe AT OS fadb| di Damp of for funetien main: Dxde0aes1d <+0>: push OnDevdBale DEDEBEZI <2 6>) 03040426 <+9>; 20 <7 ox08048436 <+25>2 OxoaD4BA3e <#33>4 gxQE0URHES OxdBUABLda <4: onOHOSBAE 0x0, Bea SHUAPRE DS, GDB SUL AT&T Hitt nil. aie. RAT Pits, © GDB RH Intel iS:

You might also like