Skip to main content

Hooks and stubs

Software is not made up of a unique function, and no longer of a unique binary file. Software interacts with environment and often depends of several libraries. It is now time to learn how to deal with external (dynamically linked) functions, using DBA function stubs.

In this chapter, we will use the simple challenge named level1 which comes from the site crackmes.one.

What is inside?

This challenge consist of an ELF x86-64 executable that dynamically links with libraries.

Even if it is quite small (~16KB), it is already bigger than the previous examples.

note

By default, compilers tend to put a lot of metadata and to pad the content of sections to align on page boundaries (4KB), leading easily to binary files of tens of kilobytes.

Hexdump

As before, we put here the summary of basic information that can be extracted via BINSEC.

00000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500000005100000052000000530000005400000055000000560000005700000058000000590000005a0000005b0000005c0000005d0000005e0000005f000000600000006100000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f000000700000007100000072000000730000007400000075000000760000007700000078000000790000007a0000007b0000007c0000007d0000007e0000007f000000800000008100000082000000830000008400000085000000860000008700000088000000890000008a0000008b0000008c0000008d0000008e0000008f000000900000009100000092000000930000009400000095000000960000009700000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db000000dc000000dd000000de000000df000000e0000000e1000000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef000000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd000000fe000000ff000001000000010100000102000001030000010400000105000001060000010700000108000001090000010a0000010b0000010c0000010d0000010e0000010f000001100000011100000112000001130000011400000115000001160000011700000118000001190000011a0000011b0000011c0000011d0000011e0000011f000001200000012100000122000001230000012400000125000001260000012700000128000001290000012a0000012b0000012c0000012d0000012e0000012f000001300000013100000132000001330000013400000135000001360000013700000138000001390000013a0000013b0000013c0000013d0000013e0000013f000001400000014100000142000001430000014400000145000001460000014700000148000001490000014a0000014b0000014c0000014d0000014e0000014f000001500000015100000152000001530000015400000155000001560000015700000158000001590000015a0000015b0000015c0000015d0000015e0000015f000001600000016100000162000001630000016400000165000001660000016700000168000001690000016a0000016b0000016c0000016d0000016e0000016f000001700000017100000172000001730000017400000175000001760000017700000178000001790000017a0000017b0000017c0000017d0000017e0000017f000001800000018100000182000001830000018400000185000001860000018700000188000001890000018a0000018b0000018c0000018d0000018e0000018f000001900000019100000192000001930000019400000195000001960000019700000198000001990000019a0000019b0000019c0000019d0000019e0000019f000001a0000001a1000001a2000001a3000001a4000001a5000001a6000001a7000001a8000001a9000001aa000001ab000001ac000001ad000001ae000001af000001b0000001b1000001b2000001b3000001b4000001b5000001b6000001b7000001b8000001b9000001ba000001bb000001bc000001bd000001be000001bf000001c0000001c1000001c2000001c3000001c4000001c5000001c6000001c7000001c8000001c9000001ca000001cb000001cc000001cd000001ce000001cf000001d0000001d1000001d2000001d3000001d4000001d5000001d6000001d7000001d8000001d9000001da000001db000001dc000001dd000001de000001df000001e0000001e1000001e2000001e3000001e4000001e5000001e6000001e7000001e8000001e9000001ea000001eb000001ec000001ed000001ee000001ef000001f0000001f1000001f2000001f3000001f4000001f5000001f6000001f7000001f8000001f9000001fa000001fb000001fc000001fd000001fe000001ff000002000000020100000202000002030000020400000205000002060000020700000208000002090000020a0000020b0000020c0000020d0000020e0000020f000002100000021100000212000002130000021400000215000002160000021700000218000002190000021a0000021b0000021c0000021d0000021e0000021f000002200000022100000222000002230000022400000225000002260000022700000228000002290000022a0000022b0000022c0000022d0000022e0000022f000002300000023100000232000002330000023400000235000002360000023700000238000002390000023a0000023b0000023c0000023d0000023e0000023f000002400000024100000242000002430000024400000245000002460000024700000248000002490000024a0000024b0000024c0000024d0000024e0000024f000002500000025100000252000002530000025400000255000002560000025700000258000002590000025a0000025b0000025c0000025d0000025e0000025f000002600000026100000262000002630000026400000265000002660000026700000268000002690000026a0000026b0000026c0000026d0000026e0000026f000002700000027100000272000002730000027400000275000002760000027700000278000002790000027a0000027b0000027c0000027d0000027e0000027f000002800000028100000282000002830000028400000285000002860000028700000288000002890000028a0000028b0000028c0000028d0000028e0000028f000002900000029100000292000002930000029400000295000002960000029700000298000002990000029a0000029b0000029c0000029d0000029e0000029f000002a0000002a1000002a2000002a3000002a4000002a5000002a6000002a7000002a8000002a9000002aa000002ab000002ac000002ad000002ae000002af000002b0000002b1000002b2000002b3000002b4000002b5000002b6000002b7000002b8000002b9000002ba000002bb000002bc000002bd000002be000002bf000002c0000002c1000002c2000002c3000002c4000002c5000002c6000002c7000002c8000002c9000002ca000002cb000002cc000002cd000002ce000002cf000002d0000002d1000002d2000002d3000002d4000002d5000002d6000002d7000002d8000002d9000002da000002db000002dc000002dd000002de000002df000002e0000002e1000002e2000002e3000002e4000002e5000002e6000002e7000002e8000002e9000002ea000002eb000002ec000002ed000002ee000002ef000002f0000002f1000002f2000002f3000002f4000002f5000002f6000002f7000002f8000002f9000002fa000002fb000002fc000002fd000002fe000002ff000003000000030100000302000003030000030400000305000003060000030700000308000003090000030a0000030b0000030c0000030d0000030e0000030f000003100000031100000312000003130000031400000315000003160000031700000318000003190000031a0000031b0000031c0000031d0000031e0000031f000003200000032100000322000003230000032400000325000003260000032700000328000003290000032a0000032b0000032c0000032d0000032e0000032f000003300000033100000332000003330000033400000335000003360000033700000338000003390000033a0000033b0000033c0000033d0000033e0000033f000003400000034100000342000003430000034400000345000003460000034700000348000003490000034a0000034b0000034c0000034d0000034e0000034f000003500000035100000352000003530000035400000355000003560000035700000358000003590000035a0000035b0000035c0000035d0000035e0000035f000003600000036100000362000003630000036400000365000003660000036700000368000003690000036a0000036b0000036c0000036d0000036e0000036f000003700000037100000372000003730000037400000375000003760000037700000378000003790000037a0000037b0000037c0000037d0000037e0000037f000003800000038100000382000003830000038400000385000003860000038700000388000003890000038a0000038b0000038c0000038d0000038e0000038f000003900000039100000392000003930000039400000395000003960000039700000398000003990000039a0000039b0000039c0000039d0000039e0000039f000003a0000003a1000003a2000003a3000003a4000003a5000003a6000003a7000003a8000003a9000003aa000003ab000003ac000003ad000003ae000003af000003b0000003b1000003b2000003b3000003b4000003b5000003b6000003b7000003b8000003b9000003ba000003bb000003bc000003bd000003be000003bf000003c0000003c1000003c2000003c3000003c4000003c5000003c6000003c7000003c8000003c9000003ca000003cb000003cc000003cd000003ce000003cf000003d0000003d1000003d2000003d3000003d4000003d5000003d6000003d7000003d8000003d9000003da000003db000003dc000003dd000003de000003df000003e0000003e1000003e2000003e3000003e4000003e5000003e6000003e7000003e8000003e9000003ea0
7f45 4c46 0201 0100 0000 0000 0000 0000 0300 3e00 0100 0000 6010 0000 0000 0000 4000 0000 0000 0000 f036 0000 0000 0000 0000 0000 4000 3800 0d00 4000 1f00 1e00 0600 0000 0400 0000 4000 0000 0000 0000 4000 0000 0000 0000 4000 0000 0000 0000 d802 0000 0000 0000 d802 0000 0000 0000 0800 0000 0000 0000 0300 0000 0400 0000 1803 0000 0000 0000 1803 0000 0000 0000 1803 0000 0000 0000 1c00 0000 0000 0000 1c00 0000 0000 0000 0100 0000 0000 0000 0100 0000 0400 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7006 0000 0000 0000 7006 0000 0000 0000 0010 0000 0000 0000 0100 0000 0500 0000 0010 0000 0000 0000 0010 0000 0000 0000 0010 0000 0000 0000 7102 0000 0000 0000 7102 0000 0000 0000 0010 0000 0000 0000 0100 0000 0400 0000 0020 0000 0000 0000 0020 0000 0000 0000 0020 0000 0000 0000 6401 0000 0000 0000 6401 0000 0000 0000 0010 0000 0000 0000 0100 0000 0600 0000 d02d 0000 0000 0000 d03d 0000 0000 0000 d03d 0000 0000 0000 5002 0000 0000 0000 5802 0000 0000 0000 0010 0000 0000 0000 0200 0000 0600 0000 e02d 0000 0000 0000 e03d 0000 0000 0000 e03d 0000 0000 0000 e001 0000 0000 0000 e001 0000 0000 0000 0800 0000 0000 0000 0400 0000 0400 0000 3803 0000 0000 0000 3803 0000 0000 0000 3803 0000 0000 0000 2000 0000 0000 0000 2000 0000 0000 0000 0800 0000 0000 0000 0400 0000 0400 0000 5803 0000 0000 0000 5803 0000 0000 0000 5803 0000 0000 0000 4400 0000 0000 0000 4400 0000 0000 0000 0400 0000 0000 0000 53e5 7464 0400 0000 3803 0000 0000 0000 3803 0000 0000 0000 3803 0000 0000 0000 2000 0000 0000 0000 2000 0000 0000 0000 0800 0000 0000 0000 50e5 7464 0400 0000 6420 0000 0000 0000 6420 0000 0000 0000 6420 0000 0000 0000 3400 0000 0000 0000 3400 0000 0000 0000 0400 0000 0000 0000 51e5 7464 0600 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 52e5 7464 0400 0000 d02d 0000 0000 0000 d03d 0000 0000 0000 d03d 0000 0000 0000 3002 0000 0000 0000 3002 0000 0000 0000 0100 0000 0000 0000 2f6c 6962 3634 2f6c 642d 6c69 6e75 782d 7838 362d 3634 2e73 6f2e 3200 0000 0000 0400 0000 1000 0000 0500 0000 474e 5500 0280 00c0 0400 0000 0100 0000 0000 0000 0400 0000 1400 0000 0300 0000 474e 5500 89f4 0555 f678 06b4 082e 5785 d918 36bb 6baa aa9d 0400 0000 1000 0000 0100 0000 474e 5500 0000 0000 0300 0000 0200 0000 0000 0000 0000 0000 0200 0000 0700 0000 0100 0000 0600 0000 0000 8100 0000 0000 0700 0000 0000 0000 d165 ce6d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 6300 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2200 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 7f00 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 2900 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 8e00 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1300 0000 2200 0000 0000 0000 0000 0000 0000 0000 0000 0000 005f 5f6c 6962 635f 7374 6172 745f 6d61 696e 005f 5f63 7861 5f66 696e 616c 697a 6500 7072 696e 7466 005f 5f69 736f 6339 395f 7363 616e 6600 6c69 6263 2e73 6f2e 3600 474c 4942 435f 322e 3700 474c 4942 435f 322e 322e 3500 474c 4942 435f 322e 3334 005f 4954 4d5f 6465 7265 6769 7374 6572 544d 436c 6f6e 6554 6162 6c65 005f 5f67 6d6f 6e5f 7374 6172 745f 5f00 5f49 544d 5f72 6567 6973 7465 7254 4d43 6c6f 6e65 5461 626c 6500 0000 0200 0100 0300 0100 0400 0100 0300 0100 0300 3800 0000 1000 0000 0000 0000 1769 690d 0000 0400 4200 0000 1000 0000 751a 6909 0000 0300 4c00 0000 1000 0000 b491 9606 0000 0200 5800 0000 0000 0000 d03d 0000 0000 0000 0800 0000 0000 0000 4011 0000 0000 0000 d83d 0000 0000 0000 0800 0000 0000 0000 0011 0000 0000 0000 1840 0000 0000 0000 0800 0000 0000 0000 1840 0000 0000 0000 c03f 0000 0000 0000 0600 0000 0100 0000 0000 0000 0000 0000 c83f 0000 0000 0000 0600 0000 0200 0000 0000 0000 0000 0000 d03f 0000 0000 0000 0600 0000 0400 0000 0000 0000 0000 0000 d83f 0000 0000 0000 0600 0000 0600 0000 0000 0000 0000 0000 e03f 0000 0000 0000 0600 0000 0700 0000 0000 0000 0000 0000 0040 0000 0000 0000 0700 0000 0300 0000 0000 0000 0000 0000 0840 0000 0000 0000 0700 0000 0500 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4883 ec08 488b 05c5 2f00 0048 85c0 7402 ffd0 4883 c408 c300 0000 0000 0000 0000 ff35 ca2f 0000 ff25 cc2f 0000 0f1f 4000 ff25 ca2f 0000 6800 0000 00e9 e0ff ffff ff25 c22f 0000 6801 0000 00e9 d0ff ffff ff25 8a2f 0000 6690 0000 0000 0000 0000 31ed 4989 d15e 4889 e248 83e4 f050 5445 31c0 31c9 488d 3d5a 0100 00ff 153f 2f00 00f4 662e 0f1f 8400 0000 0000 0f1f 4000 488d 3d89 2f00 0048 8d05 822f 0000 4839 f874 1548 8b05 1e2f 0000 4885 c074 09ff e00f 1f80 0000 0000 c30f 1f80 0000 0000 488d 3d59 2f00 0048 8d35 522f 0000 4829 fe48 89f0 48c1 ee3f 48c1 f803 4801 c648 d1fe 7414 488b 05ed 2e00 0048 85c0 7408 ffe0 660f 1f44 0000 c30f 1f80 0000 0000 f30f 1efa 803d 152f 0000 0075 2b55 4883 3dca 2e00 0000 4889 e574 0c48 8b3d f62e 0000 e829 ffff ffe8 64ff ffff c605 ed2e 0000 015d c30f 1f00 c30f 1f80 0000 0000 f30f 1efa e977 ffff ff55 4889 e548 897d f848 8b45 f80f b600 3c73 7570 488b 45f8 4883 c001 0fb6 003c 7575 6148 8b45 f848 83c0 020f b600 3c64 7552 488b 45f8 4883 c003 0fb6 003c 6f75 4348 8b45 f848 83c0 040f b600 3c30 7534 488b 45f8 4883 c005 0fb6 003c 7875 2548 8b45 f848 83c0 060f b600 3c31 7516 488b 45f8 4883 c007 0fb6 003c 3875 07b8 0100 0000 eb07 b800 0000 00eb 005d c355 4889 e548 83ec 5089 7dbc 4889 75b0 488d 0519 0e00 0048 89c7 b800 0000 00e8 38fe ffff 488d 051e 0e00 0048 89c7 b800 0000 00e8 24fe ffff 488d 45c0 4889 c648 8d05 180e 0000 4889 c7b8 0000 0000 e819 feff ff48 8d45 c048 89c7 e816 ffff ff85 c074 1648 8d05 f90d 0000 4889 c7b8 0000 0000 e8e5 fdff ffeb 1448 8d05 f60d 0000 4889 c7b8 0000 0000 e8cf fdff ffb8 0000 0000 c9c3 4883 ec08 4883 c408 c300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0200 5765 6c63 6f6d 6520 746f 2045 6173 7920 4372 6163 6b20 4d65 0057 6861 7420 6973 2074 6865 2053 6563 7265 7420 3f00 2536 3473 0059 6f75 2061 7265 2063 6f72 7265 6374 203a 2900 4265 7474 6572 206c 7563 6b20 6e65 7874 2074 696d 652e 203a 2800 011b 033b 3000 0000 0500 0000 bcef ffff 7c00 0000 ecef ffff a400 0000 fcef ffff 4c00 0000 e5f0 ffff bc00 0000 71f1 ffff dc00 0000 1400 0000 0000 0000 017a 5200 0178 1001 1b0c 0708 9001 0710 1400 0000 1c00 0000 a8ef ffff 2200 0000 0000 0000 0000 0000 1400 0000 0000 0000 017a 5200 0178 1001 1b0c 0708 9001 0000 2400 0000 1c00 0000 38ef ffff 3000 0000 000e 1046 0e18 4a0f 0b77 0880 003f 1a3b 2a33 2422 0000 0000 1400 0000 4400 0000 40ef ffff 0800 0000 0000 0000 0000 0000 1c00 0000 5c00 0000 21f0 ffff 8c00 0000 0041 0e10 8602 430d 0602 870c 0708 0000 1c00 0000 7c00 0000 8df0 ffff 9300 0000 0041 0e10 8602 430d 0602 8e0c 0708 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4011 0000 0000 0000 0011 0000 0000 0000 0100 0000 0000 0000 3800 0000 0000 0000 0c00 0000 0000 0000 0010 0000 0000 0000 0d00 0000 0000 0000 6812 0000 0000 0000 1900 0000 0000 0000 d03d 0000 0000 0000 1b00 0000 0000 0000 0800 0000 0000 0000 1a00 0000 0000 0000 d83d 0000 0000 0000 1c00 0000 0000 0000 0800 0000 0000 0000 f5fe ff6f 0000 0000 a003 0000 0000 0000 0500 0000 0000 0000 8804 0000 0000 0000 0600 0000 0000 0000 c803 0000 0000 0000 0a00 0000 0000 0000 a800 0000 0000 0000 0b00 0000 0000 0000 1800 0000 0000 0000 1500 0000 0000 0000 0000 0000 0000 0000 0300 0000 0000 0000 e83f 0000 0000 0000 0200 0000 0000 0000 3000 0000 0000 0000 1400 0000 0000 0000 0700 0000 0000 0000 1700 0000 0000 0000 4006 0000 0000 0000 0700 0000 0000 0000 8005 0000 0000 0000 0800 0000 0000 0000 c000 0000 0000 0000 0900 0000 0000 0000 1800 0000 0000 0000 fbff ff6f 0000 0000 0000 0008 0000 0000 feff ff6f 0000 0000 4005 0000 0000 0000 ffff ff6f 0000 0000 0100 0000 0000 0000 f0ff ff6f 0000 0000 3005 0000 0000 0000 f9ff ff6f 0000 0000 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e03d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3610 0000 0000 0000 4610 0000 0000 0000 0000 0000 0000 0000 1840 0000 0000 0000 4743 433a 2028 4465 6269 616e 2031 322e 322e 302d 3134 2920 3132 2e32 2e30 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 0900 0000 0100 0400 7c03 0000 0000 0000 2000 0000 0000 0000 1300 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 1e00 0000 0200 0f00 9010 0000 0000 0000 0000 0000 0000 0000 2000 0000 0200 0f00 c010 0000 0000 0000 0000 0000 0000 0000 3300 0000 0200 0f00 0011 0000 0000 0000 0000 0000 0000 0000 4900 0000 0100 1a00 2040 0000 0000 0000 0100 0000 0000 0000 5500 0000 0100 1500 d83d 0000 0000 0000 0000 0000 0000 0000 7c00 0000 0200 0f00 4011 0000 0000 0000 0000 0000 0000 0000 8800 0000 0100 1400 d03d 0000 0000 0000 0000 0000 0000 0000 a700 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 1300 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 b200 0000 0100 1300 6021 0000 0000 0000 0000 0000 0000 0000 0000 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 c000 0000 0100 1600 e03d 0000 0000 0000 0000 0000 0000 0000 c900 0000 0000 1200 6420 0000 0000 0000 0000 0000 0000 0000 dc00 0000 0100 1800 e83f 0000 0000 0000 0000 0000 0000 0000 f200 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 0f01 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4d01 0000 2000 1900 1040 0000 0000 0000 0000 0000 0000 0000 2b01 0000 1000 1900 2040 0000 0000 0000 0000 0000 0000 0000 3201 0000 1202 1000 6812 0000 0000 0000 0000 0000 0000 0000 3801 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 4b01 0000 1000 1900 1040 0000 0000 0000 0000 0000 0000 0000 5801 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 6701 0000 1102 1900 1840 0000 0000 0000 0000 0000 0000 0000 7401 0000 1100 1100 0020 0000 0000 0000 0400 0000 0000 0000 8301 0000 1000 1a00 2840 0000 0000 0000 0000 0000 0000 0000 5101 0000 1200 0f00 6010 0000 0000 0000 2200 0000 0000 0000 8801 0000 1200 0f00 4911 0000 0000 0000 8c00 0000 0000 0000 9201 0000 1000 1a00 2040 0000 0000 0000 0000 0000 0000 0000 9e01 0000 1200 0f00 d511 0000 0000 0000 9300 0000 0000 0000 a301 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 bc01 0000 1102 1900 2040 0000 0000 0000 0000 0000 0000 0000 c801 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 e201 0000 2200 0000 0000 0000 0000 0000 0000 0000 0000 0000 fd01 0000 1202 0c00 0010 0000 0000 0000 0000 0000 0000 0000 0053 6372 7431 2e6f 005f 5f61 6269 5f74 6167 0063 7274 7374 7566 662e 6300 6465 7265 6769 7374 6572 5f74 6d5f 636c 6f6e 6573 005f 5f64 6f5f 676c 6f62 616c 5f64 746f 7273 5f61 7578 0063 6f6d 706c 6574 6564 2e30 005f 5f64 6f5f 676c 6f62 616c 5f64 746f 7273 5f61 7578 5f66 696e 695f 6172 7261 795f 656e 7472 7900 6672 616d 655f 6475 6d6d 7900 5f5f 6672 616d 655f 6475 6d6d 795f 696e 6974 5f61 7272 6179 5f65 6e74 7279 0063 685f 6669 7273 742e 6300 5f5f 4652 414d 455f 454e 445f 5f00 5f44 594e 414d 4943 005f 5f47 4e55 5f45 485f 4652 414d 455f 4844 5200 5f47 4c4f 4241 4c5f 4f46 4653 4554 5f54 4142 4c45 5f00 5f5f 6c69 6263 5f73 7461 7274 5f6d 6169 6e40 474c 4942 435f 322e 3334 005f 4954 4d5f 6465 7265 6769 7374 6572 544d 436c 6f6e 6554 6162 6c65 005f 6564 6174 6100 5f66 696e 6900 7072 696e 7466 4047 4c49 4243 5f32 2e32 2e35 005f 5f64 6174 615f 7374 6172 7400 5f5f 676d 6f6e 5f73 7461 7274 5f5f 005f 5f64 736f 5f68 616e 646c 6500 5f49 4f5f 7374 6469 6e5f 7573 6564 005f 656e 6400 6368 6563 6b50 6173 7300 5f5f 6273 735f 7374 6172 7400 6d61 696e 005f 5f69 736f 6339 395f 7363 616e 6640 474c 4942 435f 322e 3700 5f5f 544d 435f 454e 445f 5f00 5f49 544d 5f72 6567 6973 7465 7254 4d43 6c6f 6e65 5461 626c 6500 5f5f 6378 615f 6669 6e61 6c69 7a65 4047 4c49 4243 5f32 2e32 2e35 005f 696e 6974 0000 2e73 796d 7461 6200 2e73 7472 7461 6200 2e73 6873 7472 7461 6200 2e69 6e74 6572 7000 2e6e 6f74 652e 676e 752e 7072 6f70 6572 7479 002e 6e6f 7465 2e67 6e75 2e62 7569 6c64 2d69 6400 2e6e 6f74 652e 4142 492d 7461 6700 2e67 6e75 2e68 6173 6800 2e64 796e 7379 6d00 2e64 796e 7374 7200 2e67 6e75 2e76 6572 7369 6f6e 002e 676e 752e 7665 7273 696f 6e5f 7200 2e72 656c 612e 6479 6e00 2e72 656c 612e 706c 7400 2e69 6e69 7400 2e70 6c74 2e67 6f74 002e 7465 7874 002e 6669 6e69 002e 726f 6461 7461 002e 6568 5f66 7261 6d65 5f68 6472 002e 6568 5f66 7261 6d65 002e 696e 6974 5f61 7272 6179 002e 6669 6e69 5f61 7272 6179 002e 6479 6e61 6d69 6300 2e67 6f74 2e70 6c74 002e 6461 7461 002e 6273 7300 2e63 6f6d 6d65 6e74 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1b00 0000 0100 0000 0200 0000 0000 0000 1803 0000 0000 0000 1803 0000 0000 0000 1c00 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 2300 0000 0700 0000 0200 0000 0000 0000 3803 0000 0000 0000 3803 0000 0000 0000 2000 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 3600 0000 0700 0000 0200 0000 0000 0000 5803 0000 0000 0000 5803 0000 0000 0000 2400 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 4900 0000 0700 0000 0200 0000 0000 0000 7c03 0000 0000 0000 7c03 0000 0000 0000 2000 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 5700 0000 f6ff ff6f 0200 0000 0000 0000 a003 0000 0000 0000 a003 0000 0000 0000 2400 0000 0000 0000 0600 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 6100 0000 0b00 0000 0200 0000 0000 0000 c803 0000 0000 0000 c803 0000 0000 0000 c000 0000 0000 0000 0700 0000 0100 0000 0800 0000 0000 0000 1800 0000 0000 0000 6900 0000 0300 0000 0200 0000 0000 0000 8804 0000 0000 0000 8804 0000 0000 0000 a800 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 7100 0000 ffff ff6f 0200 0000 0000 0000 3005 0000 0000 0000 3005 0000 0000 0000 1000 0000 0000 0000 0600 0000 0000 0000 0200 0000 0000 0000 0200 0000 0000 0000 7e00 0000 feff ff6f 0200 0000 0000 0000 4005 0000 0000 0000 4005 0000 0000 0000 4000 0000 0000 0000 0700 0000 0100 0000 0800 0000 0000 0000 0000 0000 0000 0000 8d00 0000 0400 0000 0200 0000 0000 0000 8005 0000 0000 0000 8005 0000 0000 0000 c000 0000 0000 0000 0600 0000 0000 0000 0800 0000 0000 0000 1800 0000 0000 0000 9700 0000 0400 0000 4200 0000 0000 0000 4006 0000 0000 0000 4006 0000 0000 0000 3000 0000 0000 0000 0600 0000 1800 0000 0800 0000 0000 0000 1800 0000 0000 0000 a100 0000 0100 0000 0600 0000 0000 0000 0010 0000 0000 0000 0010 0000 0000 0000 1700 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 9c00 0000 0100 0000 0600 0000 0000 0000 2010 0000 0000 0000 2010 0000 0000 0000 3000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 1000 0000 0000 0000 a700 0000 0100 0000 0600 0000 0000 0000 5010 0000 0000 0000 5010 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0800 0000 0000 0000 b000 0000 0100 0000 0600 0000 0000 0000 6010 0000 0000 0000 6010 0000 0000 0000 0802 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 b600 0000 0100 0000 0600 0000 0000 0000 6812 0000 0000 0000 6812 0000 0000 0000 0900 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 bc00 0000 0100 0000 0200 0000 0000 0000 0020 0000 0000 0000 0020 0000 0000 0000 6400 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 c400 0000 0100 0000 0200 0000 0000 0000 6420 0000 0000 0000 6420 0000 0000 0000 3400 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 d200 0000 0100 0000 0200 0000 0000 0000 9820 0000 0000 0000 9820 0000 0000 0000 cc00 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 dc00 0000 0e00 0000 0300 0000 0000 0000 d03d 0000 0000 0000 d02d 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0800 0000 0000 0000 e800 0000 0f00 0000 0300 0000 0000 0000 d83d 0000 0000 0000 d82d 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0800 0000 0000 0000 f400 0000 0600 0000 0300 0000 0000 0000 e03d 0000 0000 0000 e02d 0000 0000 0000 e001 0000 0000 0000 0700 0000 0000 0000 0800 0000 0000 0000 1000 0000 0000 0000 ab00 0000 0100 0000 0300 0000 0000 0000 c03f 0000 0000 0000 c02f 0000 0000 0000 2800 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0800 0000 0000 0000 fd00 0000 0100 0000 0300 0000 0000 0000 e83f 0000 0000 0000 e82f 0000 0000 0000 2800 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0800 0000 0000 0000 0601 0000 0100 0000 0300 0000 0000 0000 1040 0000 0000 0000 1030 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 0c01 0000 0800 0000 0300 0000 0000 0000 2040 0000 0000 0000 2030 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 1101 0000 0100 0000 3000 0000 0000 0000 0000 0000 0000 0000 2030 0000 0000 0000 1f00 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0100 0000 0000 0000 0100 0000 0200 0000 0000 0000 0000 0000 0000 0000 0000 0000 4030 0000 0000 0000 9003 0000 0000 0000 1d00 0000 1200 0000 0800 0000 0000 0000 1800 0000 0000 0000 0900 0000 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 d033 0000 0000 0000 0302 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 1100 0000 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 d335 0000 0000 0000 1a01 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000
Legend
Headers Magic
Code Instructions
Read-Only Data Strings
Data Other Sections
ELF Header:
  Class:               ELF64                        
  Data:                2's complement, little endian
  Type:                DYN                          
  OS/ABI:              Linux - GNU                  
  Kernel Version:      3.2.0                        
  Machine:             x86                          
  Entry point address: 0x1060                       

Section Headers:
  [Nr] Name           Type       Addr             Off    Size   ES Flg Lk Inf
  Al
  [ 0]                NULL       0000000000000000 000000 000000 00      0   0
   0
  [ 1] .interp        PROGBITS   0000000000000318 000318 00001c 00   A  0   0
   1
  [ 2] .note.gnu.p... NOTE       0000000000000338 000338 000020 00   A  0   0
   8
  [ 3] .note.gnu.b... NOTE       0000000000000358 000358 000024 00   A  0   0
   4
  [ 4] .note.ABI-tag  NOTE       000000000000037c 00037c 000020 00   A  0   0
   4
  [ 5] .gnu.hash      GNU_HASH   00000000000003a0 0003a0 000024 00   A  6   0
   8
  [ 6] .dynsym        DYNSYM     00000000000003c8 0003c8 0000c0 18   A  7   1
   8
  [ 7] .dynstr        STRTAB     0000000000000488 000488 0000a8 00   A  0   0
   1
  [ 8] .gnu.version   VERSYM     0000000000000530 000530 000010 02   A  6   0
   2
  [ 9] .gnu.version_r VERNEED    0000000000000540 000540 000040 00   A  7   1
   8
  [10] .rela.dyn      RELA       0000000000000580 000580 0000c0 18   A  6   0
   8
  [11] .rela.plt      RELA       0000000000000640 000640 000030 18  AI  6  24
   8
  [12] .init          PROGBITS   0000000000001000 001000 000017 00  AX  0   0
   4
  [13] .plt           PROGBITS   0000000000001020 001020 000030 10  AX  0   0
  16
  [14] .plt.got       PROGBITS   0000000000001050 001050 000008 08  AX  0   0
   8
  [15] .text          PROGBITS   0000000000001060 001060 000208 00  AX  0   0
  16
  [16] .fini          PROGBITS   0000000000001268 001268 000009 00  AX  0   0
   4
  [17] .rodata        PROGBITS   0000000000002000 002000 000064 00   A  0   0
   4
  [18] .eh_frame_hdr  PROGBITS   0000000000002064 002064 000034 00   A  0   0
   4
  [19] .eh_frame      PROGBITS   0000000000002098 002098 0000cc 00   A  0   0
   8
  [20] .init_array    INIT_ARRAY 0000000000003dd0 002dd0 000008 08  WA  0   0
   8
  [21] .fini_array    FINI_ARRAY 0000000000003dd8 002dd8 000008 08  WA  0   0
   8
  [22] .dynamic       DYNAMIC    0000000000003de0 002de0 0001e0 10  WA  7   0
   8
  [23] .got           PROGBITS   0000000000003fc0 002fc0 000028 08  WA  0   0
   8
  [24] .got.plt       PROGBITS   0000000000003fe8 002fe8 000028 08  WA  0   0
   8
  [25] .data          PROGBITS   0000000000004010 003010 000010 00  WA  0   0
   8
  [26] .bss           NOBITS     0000000000004020 003020 000008 00  WA  0   0
   1
  [27] .comment       PROGBITS   0000000000000000 003020 00001f 01  MS  0   0
   1
  [28] .symtab        SYMTAB     0000000000000000 003040 000390 18     29  18
   8
  [29] .strtab        STRTAB     0000000000000000 0033d0 000203 00      0   0
   1
  [30] .shstrtab      STRTAB     0000000000000000 0035d3 00011a 00      0   0
   1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), G (group), T (TLS), O (extra OS processing required)

Symbol table '.dynsym' contains 8 entries:
  Num:            Value Size Type   Bind   Section Name             
    0: 0000000000000000    0 NOTYPE LOCAL  UND                      
    1: 0000000000000000    0 FUNC   GLOBAL UND     __libc_start_main
    2: 0000000000000000    0 NOTYPE WEAK   UND     _ITM_deregiste...
    3: 0000000000000000    0 FUNC   GLOBAL UND     printf           
    4: 0000000000000000    0 NOTYPE WEAK   UND     __gmon_start__   
    5: 0000000000000000    0 FUNC   GLOBAL UND     __isoc99_scanf   
    6: 0000000000000000    0 NOTYPE WEAK   UND     _ITM_registerT...
    7: 0000000000000000    0 FUNC   WEAK   UND     __cxa_finalize   

Symbol table '.symtab' contains 38 entries:
  Num:            Value Size Type   Bind   Section       Name                
    0: 0000000000000000    0 NOTYPE LOCAL  UND                               
    1: 0000000000000000    0 FILE   LOCAL  ABS           Scrt1.o             
    2: 000000000000037c   32 OBJECT LOCAL  .note.ABI-tag __abi_tag           
    3: 0000000000000000    0 FILE   LOCAL  ABS           crtstuff.c          
    4: 0000000000001090    0 FUNC   LOCAL  .text         deregister_tm_clones
    5: 00000000000010c0    0 FUNC   LOCAL  .text         register_tm_clones  
    6: 0000000000001100    0 FUNC   LOCAL  .text         __do_global_dtors...
    7: 0000000000004020    1 OBJECT LOCAL  .bss          completed.0         
    8: 0000000000003dd8    0 OBJECT LOCAL  .fini_array   __do_global_dtors...
    9: 0000000000001140    0 FUNC   LOCAL  .text         frame_dummy         
   10: 0000000000003dd0    0 OBJECT LOCAL  .init_array   __frame_dummy_ini...
   11: 0000000000000000    0 FILE   LOCAL  ABS           ch_first.c          
   12: 0000000000000000    0 FILE   LOCAL  ABS           crtstuff.c          
   13: 0000000000002160    0 OBJECT LOCAL  .eh_frame     __FRAME_END__       
   14: 0000000000000000    0 FILE   LOCAL  ABS                               
   15: 0000000000003de0    0 OBJECT LOCAL  .dynamic      _DYNAMIC            
   16: 0000000000002064    0 NOTYPE LOCAL  .eh_frame_hdr __GNU_EH_FRAME_HDR  
   17: 0000000000003fe8    0 OBJECT LOCAL  .got.plt      _GLOBAL_OFFSET_TA...
   18: 0000000000000000    0 FUNC   GLOBAL UND           __libc_start_main...
   19: 0000000000000000    0 NOTYPE WEAK   UND           _ITM_deregisterTM...
   20: 0000000000004010    0 NOTYPE WEAK   .data         data_start          
   21: 0000000000004020    0 NOTYPE GLOBAL .data         _edata              
   22: 0000000000001268    0 FUNC   GLOBAL .fini         _fini               
   23: 0000000000000000    0 FUNC   GLOBAL UND           printf@GLIBC_2.2.5  
   24: 0000000000004010    0 NOTYPE GLOBAL .data         __data_start        
   25: 0000000000000000    0 NOTYPE WEAK   UND           __gmon_start__      
   26: 0000000000004018    0 OBJECT GLOBAL .data         __dso_handle        
   27: 0000000000002000    4 OBJECT GLOBAL .rodata       _IO_stdin_used      
   28: 0000000000004028    0 NOTYPE GLOBAL .bss          _end                
   29: 0000000000001060   34 FUNC   GLOBAL .text         _start              
   30: 0000000000001149  140 FUNC   GLOBAL .text         checkPass           
   31: 0000000000004020    0 NOTYPE GLOBAL .bss          __bss_start         
   32: 00000000000011d5  147 FUNC   GLOBAL .text         main                
   33: 0000000000000000    0 FUNC   GLOBAL UND           __isoc99_scanf@GL...
   34: 0000000000004020    0 OBJECT GLOBAL .data         __TMC_END__         
   35: 0000000000000000    0 NOTYPE WEAK   UND           _ITM_registerTMCl...
   36: 0000000000000000    0 FUNC   WEAK   UND           __cxa_finalize@GL...
   37: 0000000000001000    0 FUNC   GLOBAL .init         _init  

Reverse engineering

If we run it, we are asked to enter a password.

./level1
Output
./level1 
Welcome to Easy Crack MeWhat is the Secret ?
Better luck next time. :(

As we fail to provide the good one, it simply prompts the message Better luck next time. :( before exiting. If we look at the strings in the .rodata section (0x2000), we can guess that the success is rewarded by the prompt You are correct :). Thus, our goal will be to find the password that lead the program to call a printing function (any of putc, puts, printf, etc.) with the string You are correct :) as argument.

Looking at the dynamic symbol table shows us the dynamically linked functions the program may call: here printf for output and isoc99 scanf for input.

Symbol table '.dynsym' contains 8 entries:
Num: Value Size Type Bind Section Name
0: 0000000000000000 0 NOTYPE LOCAL UND
1: 0000000000000000 0 FUNC GLOBAL UND __libc_start_main
2: 0000000000000000 0 NOTYPE WEAK UND _ITM_deregiste...
3: 0000000000000000 0 FUNC GLOBAL UND printf
4: 0000000000000000 0 NOTYPE WEAK UND __gmon_start__
5: 0000000000000000 0 FUNC GLOBAL UND __isoc99_scanf
6: 0000000000000000 0 NOTYPE WEAK UND _ITM_registerT...
7: 0000000000000000 0 FUNC WEAK UND __cxa_finalize
info

The ELF format use the special section .plt, for Procedure Linkage Table, in order to call the dynamically loaded functions.

The caller first jumps to a fixed entry in the PLT that plays the role of a trampoline and that dispatchs to the actual function implementation.

The disassembly sometimes refers to the pseudo symbol @plt to identifies an entry in the PLT.

BINSEC partially supports this syntax, so we will be able to use <printf@plt> and <__isoc99_scanf@plt>.

Writing a function stubs

Since the functions printf and __isoc99_scanf are absent of the binary, BINSEC is not able to to explore their code.

Yet, we can write a substitute body for them directly in the script.

For instance, we can model the printf function to do nothing else than simply returning to the caller.

replace <printf@plt> by
return 0
end
warning

Even if we use a function name, the replace statement does not replace the function itself, it just hook the address of the symbol (which is used to be the function entrypoint).

The function isoc99_scanf can be more tricky to model, but we do not have to implement all the behaviors of the original function. Here, it seems that the scan is only called once in the main function (0x1222). It has a concrete format specifier %64s (0x2032 in .rodata) which means it will read a string of maximum 64 bytes.

We can model it with the following script.

replace <__isoc99_scanf@plt> (format, ptr) by
assert @[format, 5] = "%64s"z
@[ptr, 64] := stdin[0, 64]
return 1
end

The important points here are:

  • BINSEC can match the function arguments according to the calling convention for us (e.g. format instead of rdi and ptr instead of rsi);
  • we put an assert to make sure our prior guess is correct: the analysis will raise an error if the function is called with another argument than"%64s";
  • the main memory of the program is accessed via the builtin @ array. Using another name will automatically declare a new symbolic array that we can use to model string'like objects like command line arguments or files. Here, we are (wisely) chose the name stdin to model the password input entered by the user.
warning

The variable format and ptr are copies of the original values. Straight assignment of a new values (:=) will not affect the original argument.

note

The z at the end of "%64s"z stands for zero terminated string and is a shortcut for "%64s\x00".

Final script

We can put the pieces together and run the following script.

replace <printf@plt> by
return 0
end

replace <__isoc99_scanf@plt> (format, ptr) by
assert @[format, 5] = "%64s"z
@[ptr, 64] := stdin[0, 64]
return 1
end

load sections .rodata, .data from file
starting from <main>
with concrete stack pointer

reach <printf@plt> (str) such that @[str, 19] = "You are correct :)"z
then print c string stdin
cut at <main> return
Output

Remember that non initialized locations are treated as symbolic by BINSEC. So, here we use 2 initialization commands to automatically concretize:

  • the content of the memory in the .rodata and .data sections;
  • the initial stack pointer.
tip

It is always safe to load read-only section like .rodata from the file. It is also highly recommended to concretize or restrict the range of the stack and other pointers to help the symbolic engine to efficiently reason on memory.

Non replacement hook

Hooks are not limited to replacement and can also be used to instrument the code while still retaining the original behavior.

In fact, we already used hooks since most of the script commands are actually a syntactic sugar around the hook mechanism.

Thus, both versions are equivalent in the following code.


at 0x400089 assert !of

hook 0x400089 with
assert !of
end

Hooks are somehow concatenated in the same order they appear in the script.


reach <fibonacci> return then print dec rax
cut at <fibonacci> return

hook <fibonacci> return with
reach then print dec rax
cut
end
note

The hook form fallthrough the underlying code at the end of the block if no explicit control flow instruction like return or jump at is used. On the other hand, the replace form raises an error if it reaches the end of the block.

Now you have learned how to replace or instrument the code with hooks, it is time to put it into practice to solve another challenge.