Skip to main content

Coredump initialization

In the previous chapter, we have seen how to model a function in the BINSEC intermediate language.

In the level1 challenge, we had to model the two functions __isoc99_scanf and printf.

note

A function stub must be provided when at least one of the following conditions is met:

  • it produces new symbolic values (e.g. __isoc99_scanf);
  • it interacts with the environment (e.g. printf);
  • its body is absent from the target binary (e.g. both __isoc99_scanf and printf).

Still, what happens when there are more than two functions to modelize?
Providing a stub for each dynamically linked function can quickly become tricky and cumbersome.

The good news is there is a way to partly automatize everything related to dynamic linking. The tip is to start the analysis from a snapshot of the process after that the dynamic linker served its purpose.

We will illustrate the process with the challenge named crackme which comes from the site crackmes.one.

What is inside?

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

Hexdump

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

00000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e0000004f000000500000005100000052000000530000005400000055000000560000005700000058000000590000005a0000005b0000005c0000005d0000005e0000005f000000600000006100000062000000630000006400000065000000660000006700000068000000690000006a0000006b0000006c0000006d0000006e0000006f0000007000000071000000720000007300000074000001000000010100000102000001030000010400000105000001060000010700000108000001090000010a0000010b0000010c0000010d0000010e0000010f000001100000011100000112000001130000011400000115000001160000011700000118000001190000011a0000011b0000011c0000011d0000011e0000011f000001200000012100000122000001230000012400000125000001260000012700000128000001290000012a0000012b0000012c0000012d0000012e0000012f000001300000013100000132000001330000013400000135000001360000013700000138000001390000013a0000013b0000013c0000013d0000013e0000013f0000014000000141000001420000014300000144000001450000014600000147000002000000020100000202000002030000020400000205000002060000020700000208000002090000020a0000020b0000020c0000020d0000020e0000020f000002100000021100000212000002130000021400000215000002160000021700000218000002d9000002da000002db000002dc000002dd000002de000002df000002e0000002e1000002e2000002e3000002e4000002e5000002e6000002e7000002e8000002e9000002ea000002eb000002ec000002ed000002ee000002ef000002f0000002f1000002f2000002f3000002f4000002f5000002f6000002f7000002f8000002f9000002fa000002fb000002fc000002fd000002fe000002ff000003000000030100000302000003030000030400000305000003060000030700000308000003090000030a0000030b0000030c0000030d0000030e0000030f000003100000031100000312000003130000031400000315000003160000031700000318000003190000031a0000031b0000031c0000031d0000031e0000031f000003200000032100000322000003230000032400000325000003260000032700000328000003290000032a0000032b0000032c0000032d0000032e0000032f000003300000033100000332000003330000033400000335000003360000033700000338000003390000033a0000033b0000033c0000033d0000033e0000033f000003400000034100000342000003430000034400000345000003460000034700000348000003490000034a0000034b0000034c0000034d0000034e0000034f000003500000035100000352000003530000035400000355000003560000035700000358000003590000035a0000035b0000035c0000035d0000035e0000035f000003600000036100000362000003630000036400000365000003660000036700000368000003690000036a0000036b0000036c0000036d0000036e0000036f000003700000037100000372000003730000037400000375000003760000037700000378000003790000037a0000037b0000037c0000037d0000037e0000037f000003800000038100000382000003830000038400000385000003860000038700000388000003890000038a0000038b0000038c0000038d0000038e0000038f000003900000039100000392000003930000039400000395000003960000039700000398000003990000039a0000039b0000039c0000039d0000039e0000039f000003a0000003a1000003a2000003a3000003a4000003a5000003a6000003a7000003a8000003a9000003aa000003ab000003ac000003ad000003ae000003af000003b0000003b1000003b2000003b3000003b4000003b5000003b6000003b7000003b8000003b9000003ba000003bb000003bc000003bd000003be000003bf000003c0000003c1000003c2000003c3000003c4000003c5000003c6000003c7000003c8000003c9000003ca000003cb000003cc000003cd000003ce000003cf000003d0000003d1000003d2000003d3000003d4000003d5000003d6000003d7000003d8000003d9000003da000003db000003dc000003dd000003de000003df000003e0000003e1000003e2000003e3000003e4000003e5000003e6000003e7000003e8000003e9000003ea000003eb000003ec000003ed000003ee000003ef000003f0000003f1000003f2000003f3000003f4000003f5000003f6000003f7000003f8000003f9000003fa000003fb000003fc000003fd000003fe000003ff000004000000040100000402000004030000040400000405000004060000040700000408000004090000040a0000040b0000040c0000040d0000040e0000040f000004100000041100000412000004130000041400000415000004160000041700000418000004190000041a0000041b0000041c0000041d0000041e0000041f000004200000042100000422000004230
7f45 4c46 0201 0100 0000 0000 0000 0000 0300 3e00 0100 0000 e010 0000 0000 0000 4000 0000 0000 0000 803a 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 5007 0000 0000 0000 5007 0000 0000 0000 0010 0000 0000 0000 0100 0000 0500 0000 0010 0000 0000 0000 0010 0000 0000 0000 0010 0000 0000 0000 7504 0000 0000 0000 7504 0000 0000 0000 0010 0000 0000 0000 0100 0000 0400 0000 0020 0000 0000 0000 0020 0000 0000 0000 0020 0000 0000 0000 8801 0000 0000 0000 8801 0000 0000 0000 0010 0000 0000 0000 0100 0000 0600 0000 982d 0000 0000 0000 983d 0000 0000 0000 983d 0000 0000 0000 8002 0000 0000 0000 9802 0000 0000 0000 0010 0000 0000 0000 0200 0000 0600 0000 a82d 0000 0000 0000 a83d 0000 0000 0000 a83d 0000 0000 0000 f001 0000 0000 0000 f001 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 3020 0000 0000 0000 3020 0000 0000 0000 3020 0000 0000 0000 4400 0000 0000 0000 4400 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 982d 0000 0000 0000 983d 0000 0000 0000 983d 0000 0000 0000 6802 0000 0000 0000 6802 0000 0000 0000 0100 0000 0000 0000 2f6c 6962 3634 2f6c 642d 6c69 6e75 782d 7838 362d 3634 2e73 6f2e 3200 .... .... 0400 0000 1000 0000 0500 0000 474e 5500 0200 00c0 0400 0000 0300 0000 0000 0000 0400 0000 1400 0000 0300 0000 474e 5500 3233 0995 33a0 1967 7791 e872 a4ce c471 97c2 187e 0400 0000 1000 0000 0100 0000 474e 5500 0000 0000 0300 0000 0200 0000 0000 0000 .... .... 0200 0000 0a00 0000 0100 0000 0600 0000 0000 a100 8000 0000 0a00 0000 0b00 0000 d165 ce6d 6755 6110 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0b00 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 7300 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1300 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 1800 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 4b00 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 2f00 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 4400 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 8f00 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 9e00 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3500 0000 2200 0000 0000 0000 0000 0000 0000 0000 0000 0000 2900 0000 1100 1a00 2040 0000 0000 0000 0800 0000 0000 0000 006c 6962 632e 736f 2e36 0073 7472 6e63 7079 0070 7574 7300 5f5f 7374 6163 6b5f 6368 6b5f 6661 696c 0073 7464 696e 0066 6765 7473 005f 5f63 7861 5f66 696e 616c 697a 6500 7374 7263 6d70 005f 5f6c 6962 635f 7374 6172 745f 6d61 696e 0047 4c49 4243 5f32 2e34 0047 4c49 4243 5f32 2e32 2e35 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 0000 0200 0300 0200 0200 0200 0000 0000 0200 0200 0100 0200 0100 0000 1000 0000 0000 0000 1469 690d 0000 0300 5d00 0000 1000 0000 751a 6909 0000 0200 6700 0000 0000 0000 983d 0000 0000 0000 0800 0000 0000 0000 c011 0000 0000 0000 a03d 0000 0000 0000 0800 0000 0000 0000 8011 0000 0000 0000 0840 0000 0000 0000 0800 0000 0000 0000 0840 0000 0000 0000 1040 0000 0000 0000 0800 0000 0000 0000 0420 0000 0000 0000 d83f 0000 0000 0000 0600 0000 0200 0000 0000 0000 0000 0000 e03f 0000 0000 0000 0600 0000 0500 0000 0000 0000 0000 0000 e83f 0000 0000 0000 0600 0000 0800 0000 0000 0000 0000 0000 f03f 0000 0000 0000 0600 0000 0900 0000 0000 0000 0000 0000 f83f 0000 0000 0000 0600 0000 0a00 0000 0000 0000 0000 0000 2040 0000 0000 0000 0500 0000 0b00 0000 0000 0000 0000 0000 b03f 0000 0000 0000 0700 0000 0100 0000 0000 0000 0000 0000 b83f 0000 0000 0000 0700 0000 0300 0000 0000 0000 0000 0000 c03f 0000 0000 0000 0700 0000 0400 0000 0000 0000 0000 0000 c83f 0000 0000 0000 0700 0000 0600 0000 0000 0000 0000 0000 d03f 0000 0000 0000 0700 0000 0700 0000 0000 0000 0000 0000 f30f 1efa 4883 ec08 488b 05d9 2f00 0048 85c0 7402 ffd0 4883 c408 c3.. .... .... ff35 7a2f 0000 f2ff 257b 2f00 000f 1f00 f30f 1efa 6800 0000 00f2 e9e1 ffff ff90 f30f 1efa 6801 0000 00f2 e9d1 ffff ff90 f30f 1efa 6802 0000 00f2 e9c1 ffff ff90 f30f 1efa 6803 0000 00f2 e9b1 ffff ff90 f30f 1efa 6804 0000 00f2 e9a1 ffff ff90 f30f 1efa f2ff 256d 2f00 000f 1f44 0000 f30f 1efa f2ff 2515 2f00 000f 1f44 0000 f30f 1efa f2ff 250d 2f00 000f 1f44 0000 f30f 1efa f2ff 2505 2f00 000f 1f44 0000 f30f 1efa f2ff 25fd 2e00 000f 1f44 0000 f30f 1efa f2ff 25f5 2e00 000f 1f44 0000 f30f 1efa 31ed 4989 d15e 4889 e248 83e4 f050 544c 8d05 6603 0000 488d 0def 0200 0048 8d3d c100 0000 ff15 d22e 0000 f490 488d 3d01 2f00 0048 8d05 fa2e 0000 4839 f874 1548 8b05 ae2e 0000 4885 c074 09ff e00f 1f80 0000 0000 c30f 1f80 0000 0000 488d 3dd1 2e00 0048 8d35 ca2e 0000 4829 fe48 89f0 48c1 ee3f 48c1 f803 4801 c648 d1fe 7414 488b 0585 2e00 0048 85c0 7408 ffe0 660f 1f44 0000 c30f 1f80 0000 0000 f30f 1efa 803d 9d2e 0000 0075 2b55 4883 3d62 2e00 0000 4889 e574 0c48 8b3d 662e 0000 e8d9 feff ffe8 64ff ffff c605 752e 0000 015d c30f 1f00 c30f 1f80 0000 0000 f30f 1efa e977 ffff fff3 0f1e fa55 4889 e541 5541 5453 4883 ec38 6448 8b04 2528 0000 0048 8945 d831 c048 89e0 4889 c3c7 45b0 0900 0000 8b45 b048 63d0 4883 ea01 4889 55b8 4863 d049 89d4 41bd 0000 0000 4863 d049 89d2 41bb 0000 0000 4898 ba10 0000 0048 83ea 0148 01d0 b910 0000 00ba 0000 0000 48f7 f148 6bc0 1048 89c2 4881 e200 f0ff ff48 89e1 4829 d148 89ca 4839 d474 1248 81ec 0010 0000 4883 8c24 f80f 0000 00eb e948 89c2 81e2 ff0f 0000 4829 d448 89c2 81e2 ff0f 0000 4885 d274 1025 ff0f 0000 4883 e808 4801 e048 8308 0048 89e0 4883 c000 4889 45c0 8b45 b048 63d0 4883 ea01 4889 55c8 4863 d049 89d0 41b9 0000 0000 4863 d048 89d6 bf00 0000 0048 98ba 1000 0000 4883 ea01 4801 d0bf 1000 0000 ba00 0000 0048 f7f7 486b c010 4889 c248 81e2 00f0 ffff 4889 e648 29d6 4889 f248 39d4 7412 4881 ec00 1000 0048 838c 24f8 0f00 0000 ebe9 4889 c281 e2ff 0f00 0048 29d4 4889 c281 e2ff 0f00 0048 85d2 7410 25ff 0f00 0048 83e8 0848 01e0 4883 0800 4889 e048 83c0 0048 8945 d08b 45b0 4863 d048 8b0d c62c 0000 488b 45d0 4889 ce48 89c7 e837 fdff ff48 8b45 d0c6 4001 6148 8d3d a50c 0000 e833 fdff ff48 8b15 ac2c 0000 8b4d b048 8b45 c089 ce48 89c7 e83b fdff ff48 8b55 d048 8b45 c048 89d6 4889 c7e8 38fd ffff 8945 b483 7db4 0074 0e48 8d3d 750c 0000 e8f3 fcff ffeb 0c48 8d3d 700c 0000 e8e5 fcff ffb8 0000 0000 4889 dc48 8b5d d864 4833 1c25 2800 0000 7405 e8d9 fcff ff48 8d65 e85b 415c 415d 5dc3 662e 0f1f 8400 0000 0000 0f1f 4000 f30f 1efa 4157 4c8d 3d9b 2900 0041 5649 89d6 4155 4989 f541 5441 89fc 5548 8d2d 8c29 0000 534c 29fd 4883 ec08 e8df fbff ff48 c1fd 0374 1f31 db0f 1f80 0000 0000 4c89 f24c 89ee 4489 e741 ff14 df48 83c3 0148 39dd 75ea 4883 c408 5b5d 415c 415d 415e 415f c366 662e 0f1f 8400 0000 0000 f30f 1efa c3.. .... f30f 1efa 4883 ec08 4883 c408 c3.. .... .... .... .... .... 0100 0200 5040 7373 776f 7264 0045 6e74 6572 2070 6173 7377 6f72 643a 0047 6f20 6177 6179 2100 5765 6c63 6f6d 6521 00.. 011b 033b 4400 0000 0700 0000 f0ef ffff 7800 0000 50f0 ffff a000 0000 60f0 ffff b800 0000 b0f0 ffff 6000 0000 99f1 ffff d000 0000 c0f3 ffff f800 0000 30f4 ffff 4001 0000 .... .... 1400 0000 0000 0000 017a 5200 0178 1001 1b0c 0708 9001 0000 1400 0000 1c00 0000 48f0 ffff 2f00 0000 0044 0710 0000 0000 2400 0000 3400 0000 70ef ffff 6000 0000 000e 1046 0e18 4a0f 0b77 0880 003f 1a3a 2a33 2422 0000 0000 1400 0000 5c00 0000 a8ef ffff 1000 0000 0000 0000 0000 0000 1400 0000 7400 0000 a0ef ffff 5000 0000 0000 0000 0000 0000 2400 0000 8c00 0000 c1f0 ffff 1902 0000 0045 0e10 8602 430d 0649 8d03 8c04 8305 0307 020c 0708 0000 4400 0000 b400 0000 c0f2 ffff 6500 0000 0046 0e10 8f02 490e 188e 0345 0e20 8d04 450e 288c 0544 0e30 8606 480e 3883 0747 0e40 6e0e 3841 0e30 410e 2842 0e20 420e 1842 0e10 420e 0800 1000 0000 fc00 0000 e8f2 ffff 0500 0000 0000 0000 0000 0000 .... .... .... .... .... .... .... .... c011 0000 0000 0000 8011 0000 0000 0000 0100 0000 0000 0000 0100 0000 0000 0000 0c00 0000 0000 0000 0010 0000 0000 0000 0d00 0000 0000 0000 6814 0000 0000 0000 1900 0000 0000 0000 983d 0000 0000 0000 1b00 0000 0000 0000 0800 0000 0000 0000 1a00 0000 0000 0000 a03d 0000 0000 0000 1c00 0000 0000 0000 0800 0000 0000 0000 f5fe ff6f 0000 0000 a003 0000 0000 0000 0500 0000 0000 0000 e804 0000 0000 0000 0600 0000 0000 0000 c803 0000 0000 0000 0a00 0000 0000 0000 b800 0000 0000 0000 0b00 0000 0000 0000 1800 0000 0000 0000 1500 0000 0000 0000 0000 0000 0000 0000 0300 0000 0000 0000 983f 0000 0000 0000 0200 0000 0000 0000 7800 0000 0000 0000 1400 0000 0000 0000 0700 0000 0000 0000 1700 0000 0000 0000 d806 0000 0000 0000 0700 0000 0000 0000 e805 0000 0000 0000 0800 0000 0000 0000 f000 0000 0000 0000 0900 0000 0000 0000 1800 0000 0000 0000 1e00 0000 0000 0000 0800 0000 0000 0000 fbff ff6f 0000 0000 0100 0008 0000 0000 feff ff6f 0000 0000 b805 0000 0000 0000 ffff ff6f 0000 0000 0100 0000 0000 0000 f0ff ff6f 0000 0000 a005 0000 0000 0000 f9ff ff6f 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 a83d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 3010 0000 0000 0000 4010 0000 0000 0000 5010 0000 0000 0000 6010 0000 0000 0000 7010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0840 0000 0000 0000 0420 0000 0000 0000 4743 433a 2028 5562 756e 7475 2039 2e33 2e30 2d31 3775 6275 6e74 7531 7e32 302e 3034 2920 392e 332e 3000 .... .... .... 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0100 1803 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0200 3803 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0300 5803 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0400 7c03 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0500 a003 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0600 c803 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0700 e804 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0800 a005 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0900 b805 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0a00 e805 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0b00 d806 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0c00 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0d00 2010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0e00 8010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 0f00 9010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1000 e010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1100 6814 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1200 0020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1300 3020 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1400 7820 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1500 983d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1600 a03d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1700 a83d 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1800 983f 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1900 0040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1a00 2040 0000 0000 0000 0000 0000 0000 0000 0000 0000 0300 1b00 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 0c00 0000 0200 1000 1011 0000 0000 0000 0000 0000 0000 0000 0e00 0000 0200 1000 4011 0000 0000 0000 0000 0000 0000 0000 2100 0000 0200 1000 8011 0000 0000 0000 0000 0000 0000 0000 3700 0000 0100 1a00 2840 0000 0000 0000 0100 0000 0000 0000 4600 0000 0100 1600 a03d 0000 0000 0000 0000 0000 0000 0000 6d00 0000 0200 1000 c011 0000 0000 0000 0000 0000 0000 0000 7900 0000 0100 1500 983d 0000 0000 0000 0000 0000 0000 0000 9800 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 a000 0000 0100 1400 8421 0000 0000 0000 0000 0000 0000 0000 0000 0000 0400 f1ff 0000 0000 0000 0000 0000 0000 0000 0000 ae00 0000 0000 1500 a03d 0000 0000 0000 0000 0000 0000 0000 bf00 0000 0100 1700 a83d 0000 0000 0000 0000 0000 0000 0000 c800 0000 0000 1500 983d 0000 0000 0000 0000 0000 0000 0000 db00 0000 0000 1300 3020 0000 0000 0000 0000 0000 0000 0000 ee00 0000 0100 1800 983f 0000 0000 0000 0000 0000 0000 0000 1a02 0000 0200 0c00 0010 0000 0000 0000 0000 0000 0000 0000 0401 0000 1200 1000 6014 0000 0000 0000 0500 0000 0000 0000 1401 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 2901 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 c601 0000 2000 1900 0040 0000 0000 0000 0000 0000 0000 0000 4501 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 5701 0000 1100 1a00 2040 0000 0000 0000 0800 0000 0000 0000 6a01 0000 1000 1900 1840 0000 0000 0000 0000 0000 0000 0000 7101 0000 1100 1900 1040 0000 0000 0000 0800 0000 0000 0000 0e01 0000 1202 1100 6814 0000 0000 0000 0000 0000 0000 0000 7601 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 9201 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 b101 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 c401 0000 1000 1900 0040 0000 0000 0000 0000 0000 0000 0000 d101 0000 1200 0000 0000 0000 0000 0000 0000 0000 0000 0000 e501 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 f401 0000 1102 1900 0840 0000 0000 0000 0000 0000 0000 0000 0102 0000 1100 1200 0020 0000 0000 0000 0400 0000 0000 0000 1002 0000 1200 1000 f013 0000 0000 0000 6500 0000 0000 0000 ba00 0000 1000 1a00 3040 0000 0000 0000 0000 0000 0000 0000 ca01 0000 1200 1000 e010 0000 0000 0000 2f00 0000 0000 0000 2002 0000 1000 1a00 1840 0000 0000 0000 0000 0000 0000 0000 2c02 0000 1200 1000 c911 0000 0000 0000 1902 0000 0000 0000 3102 0000 1102 1900 1840 0000 0000 0000 0000 0000 0000 0000 3d02 0000 2000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5702 0000 2200 0000 0000 0000 0000 0000 0000 0000 0000 0000 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 2e38 3036 3000 5f5f 646f 5f67 6c6f 6261 6c5f 6474 6f72 735f 6175 785f 6669 6e69 5f61 7272 6179 5f65 6e74 7279 0066 7261 6d65 5f64 756d 6d79 005f 5f66 7261 6d65 5f64 756d 6d79 5f69 6e69 745f 6172 7261 795f 656e 7472 7900 6d61 696e 312e 6300 5f5f 4652 414d 455f 454e 445f 5f00 5f5f 696e 6974 5f61 7272 6179 5f65 6e64 005f 4459 4e41 4d49 4300 5f5f 696e 6974 5f61 7272 6179 5f73 7461 7274 005f 5f47 4e55 5f45 485f 4652 414d 455f 4844 5200 5f47 4c4f 4241 4c5f 4f46 4653 4554 5f54 4142 4c45 5f00 5f5f 6c69 6263 5f63 7375 5f66 696e 6900 7374 726e 6370 7940 4047 4c49 4243 5f32 2e32 2e35 005f 4954 4d5f 6465 7265 6769 7374 6572 544d 436c 6f6e 6554 6162 6c65 0070 7574 7340 4047 4c49 4243 5f32 2e32 2e35 0073 7464 696e 4040 474c 4942 435f 322e 322e 3500 5f65 6461 7461 0070 6173 7300 5f5f 7374 6163 6b5f 6368 6b5f 6661 696c 4040 474c 4942 435f 322e 3400 5f5f 6c69 6263 5f73 7461 7274 5f6d 6169 6e40 4047 4c49 4243 5f32 2e32 2e35 0066 6765 7473 4040 474c 4942 435f 322e 322e 3500 5f5f 6461 7461 5f73 7461 7274 0073 7472 636d 7040 4047 4c49 4243 5f32 2e32 2e35 005f 5f67 6d6f 6e5f 7374 6172 745f 5f00 5f5f 6473 6f5f 6861 6e64 6c65 005f 494f 5f73 7464 696e 5f75 7365 6400 5f5f 6c69 6263 5f63 7375 5f69 6e69 7400 5f5f 6273 735f 7374 6172 7400 6d61 696e 005f 5f54 4d43 5f45 4e44 5f5f 005f 4954 4d5f 7265 6769 7374 6572 544d 436c 6f6e 6554 6162 6c65 005f 5f63 7861 5f66 696e 616c 697a 6540 4047 4c49 4243 5f32 2e32 2e35 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 706c 742e 7365 6300 2e74 6578 7400 2e66 696e 6900 2e72 6f64 6174 6100 2e65 685f 6672 616d 655f 6864 7200 2e65 685f 6672 616d 6500 2e69 6e69 745f 6172 7261 7900 2e66 696e 695f 6172 7261 7900 2e64 796e 616d 6963 002e 6461 7461 002e 6273 7300 2e63 6f6d 6d65 6e74 00.. .... 0000 0000 0000 0000 0000 0000 0000 0000 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 2800 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 2001 0000 0000 0000 0700 0000 0100 0000 0800 0000 0000 0000 1800 0000 0000 0000 6900 0000 0300 0000 0200 0000 0000 0000 e804 0000 0000 0000 e804 0000 0000 0000 b800 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 7100 0000 ffff ff6f 0200 0000 0000 0000 a005 0000 0000 0000 a005 0000 0000 0000 1800 0000 0000 0000 0600 0000 0000 0000 0200 0000 0000 0000 0200 0000 0000 0000 7e00 0000 feff ff6f 0200 0000 0000 0000 b805 0000 0000 0000 b805 0000 0000 0000 3000 0000 0000 0000 0700 0000 0100 0000 0800 0000 0000 0000 0000 0000 0000 0000 8d00 0000 0400 0000 0200 0000 0000 0000 e805 0000 0000 0000 e805 0000 0000 0000 f000 0000 0000 0000 0600 0000 0000 0000 0800 0000 0000 0000 1800 0000 0000 0000 9700 0000 0400 0000 4200 0000 0000 0000 d806 0000 0000 0000 d806 0000 0000 0000 7800 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 1b00 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 6000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 1000 0000 0000 0000 a700 0000 0100 0000 0600 0000 0000 0000 8010 0000 0000 0000 8010 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 1000 0000 0000 0000 b000 0000 0100 0000 0600 0000 0000 0000 9010 0000 0000 0000 9010 0000 0000 0000 5000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 1000 0000 0000 0000 b900 0000 0100 0000 0600 0000 0000 0000 e010 0000 0000 0000 e010 0000 0000 0000 8503 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 bf00 0000 0100 0000 0600 0000 0000 0000 6814 0000 0000 0000 6814 0000 0000 0000 0d00 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 c500 0000 0100 0000 0200 0000 0000 0000 0020 0000 0000 0000 0020 0000 0000 0000 2f00 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 cd00 0000 0100 0000 0200 0000 0000 0000 3020 0000 0000 0000 3020 0000 0000 0000 4400 0000 0000 0000 0000 0000 0000 0000 0400 0000 0000 0000 0000 0000 0000 0000 db00 0000 0100 0000 0200 0000 0000 0000 7820 0000 0000 0000 7820 0000 0000 0000 1001 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 e500 0000 0e00 0000 0300 0000 0000 0000 983d 0000 0000 0000 982d 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0800 0000 0000 0000 f100 0000 0f00 0000 0300 0000 0000 0000 a03d 0000 0000 0000 a02d 0000 0000 0000 0800 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0800 0000 0000 0000 fd00 0000 0600 0000 0300 0000 0000 0000 a83d 0000 0000 0000 a82d 0000 0000 0000 f001 0000 0000 0000 0700 0000 0000 0000 0800 0000 0000 0000 1000 0000 0000 0000 ab00 0000 0100 0000 0300 0000 0000 0000 983f 0000 0000 0000 982f 0000 0000 0000 6800 0000 0000 0000 0000 0000 0000 0000 0800 0000 0000 0000 0800 0000 0000 0000 0601 0000 0100 0000 0300 0000 0000 0000 0040 0000 0000 0000 0030 0000 0000 0000 1800 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 1830 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 1101 0000 0100 0000 3000 0000 0000 0000 0000 0000 0000 0000 1830 0000 0000 0000 2a00 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 4830 0000 0000 0000 a806 0000 0000 0000 1d00 0000 2e00 0000 0800 0000 0000 0000 1800 0000 0000 0000 0900 0000 0300 0000 0000 0000 0000 0000 0000 0000 0000 0000 f036 0000 0000 0000 7302 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 6339 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-64                       
  Entry point address: 0x0010e0                     

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 000028 00   A  6   0
   8
  [ 6] .dynsym        DYNSYM     00000000000003c8 0003c8 000120 18   A  7   1
   8
  [ 7] .dynstr        STRTAB     00000000000004e8 0004e8 0000b8 00   A  0   0
   1
  [ 8] .gnu.version   VERSYM     00000000000005a0 0005a0 000018 02   A  6   0
   2
  [ 9] .gnu.version_r VERNEED    00000000000005b8 0005b8 000030 00   A  7   1
   8
  [10] .rela.dyn      RELA       00000000000005e8 0005e8 0000f0 18   A  6   0
   8
  [11] .rela.plt      RELA       00000000000006d8 0006d8 000078 18  AI  6  24
   8
  [12] .init          PROGBITS   0000000000001000 001000 00001b 00  AX  0   0
   4
  [13] .plt           PROGBITS   0000000000001020 001020 000060 10  AX  0   0
  16
  [14] .plt.got       PROGBITS   0000000000001080 001080 000010 10  AX  0   0
  16
  [15] .plt.sec       PROGBITS   0000000000001090 001090 000050 10  AX  0   0
  16
  [16] .text          PROGBITS   00000000000010e0 0010e0 000385 00  AX  0   0
  16
  [17] .fini          PROGBITS   0000000000001468 001468 00000d 00  AX  0   0
   4
  [18] .rodata        PROGBITS   0000000000002000 002000 00002f 00   A  0   0
   4
  [19] .eh_frame_hdr  PROGBITS   0000000000002030 002030 000044 00   A  0   0
   4
  [20] .eh_frame      PROGBITS   0000000000002078 002078 000110 00   A  0   0
   8
  [21] .init_array    INIT_ARRAY 0000000000003d98 002d98 000008 08  WA  0   0
   8
  [22] .fini_array    FINI_ARRAY 0000000000003da0 002da0 000008 08  WA  0   0
   8
  [23] .dynamic       DYNAMIC    0000000000003da8 002da8 0001f0 10  WA  7   0
   8
  [24] .got           PROGBITS   0000000000003f98 002f98 000068 08  WA  0   0
   8
  [25] .data          PROGBITS   0000000000004000 003000 000018 00  WA  0   0
   8
  [26] .bss           NOBITS     0000000000004020 003018 000010 00  WA  0   0
  16
  [27] .comment       PROGBITS   0000000000000000 003018 00002a 01  MS  0   0
   1
  [28] .symtab        SYMTAB     0000000000000000 003048 0006a8 18     29  46
   8
  [29] .strtab        STRTAB     0000000000000000 0036f0 000273 00      0   0
   1
  [30] .shstrtab      STRTAB     0000000000000000 003963 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)

Program Headers:
  Type         Offset   VirtAddr           PhysAddr           FileSiz 
  MemSiz   Flg Align 
  PHDR         0x000040 0x0000000000000040 0x0000000000000040 0x0002d8
  0x0002d8 R   0x8   
  INTERP       0x000318 0x0000000000000318 0x0000000000000318 0x00001c
  0x00001c R   0x1   
  LOAD         00000000 0x0000000000000000 0x0000000000000000 0x000750
  0x000750 R   0x1000
  LOAD         0x001000 0x0000000000001000 0x0000000000001000 0x000475
  0x000475 R E 0x1000
  LOAD         0x002000 0x0000000000002000 0x0000000000002000 0x000188
  0x000188 R   0x1000
  LOAD         0x002d98 0x0000000000003d98 0x0000000000003d98 0x000280
  0x000298 RW  0x1000
  DYNAMIC      0x002da8 0x0000000000003da8 0x0000000000003da8 0x0001f0
  0x0001f0 RW  0x8   
  NOTE         0x000338 0x0000000000000338 0x0000000000000338 0x000020
  0x000020 R   0x8   
  NOTE         0x000358 0x0000000000000358 0x0000000000000358 0x000044
  0x000044 R   0x4   
  GNU_PROPERTY 0x000338 0x0000000000000338 0x0000000000000338 0x000020
  0x000020 R   0x8   
  GNU_EH_FRAME 0x002030 0x0000000000002030 0x0000000000002030 0x000044
  0x000044 R   0x4   
  GNU_STACK    00000000 0x0000000000000000 0x0000000000000000 00000000
  00000000 RW  0x10  
  GNU_RELRO    0x002d98 0x0000000000003d98 0x0000000000003d98 0x000268
  0x000268 R   0x1   

Symbol table '.dynsym' contains 12 entries:
  Num:            Value Size Type   Bind   Section Name             
    0: 0000000000000000    0 NOTYPE LOCAL  UND                      
    1: 0000000000000000    0 FUNC   GLOBAL UND     strncpy          
    2: 0000000000000000    0 NOTYPE WEAK   UND     _ITM_deregiste...
    3: 0000000000000000    0 FUNC   GLOBAL UND     puts             
    4: 0000000000000000    0 FUNC   GLOBAL UND     __stack_chk_fail 
    5: 0000000000000000    0 FUNC   GLOBAL UND     __libc_start_main
    6: 0000000000000000    0 FUNC   GLOBAL UND     fgets            
    7: 0000000000000000    0 FUNC   GLOBAL UND     strcmp           
    8: 0000000000000000    0 NOTYPE WEAK   UND     __gmon_start__   
    9: 0000000000000000    0 NOTYPE WEAK   UND     _ITM_registerT...
   10: 0000000000000000    0 FUNC   WEAK   UND     __cxa_finalize   
   11: 0000000000004020    8 OBJECT GLOBAL .bss    stdin            

Symbol table '.symtab' contains 71 entries:
  Num:            Value Size Type    Bind   Section       
  Name                
    0: 0000000000000000    0 NOTYPE  LOCAL  UND           
                      
    1: 0000000000000318    0 SECTION LOCAL  .interp       
                      
    2: 0000000000000338    0 SECTION LOCAL  .note.gnu.p...
                      
    3: 0000000000000358    0 SECTION LOCAL  .note.gnu.b...
                      
    4: 000000000000037c    0 SECTION LOCAL  .note.ABI-tag 
                      
    5: 00000000000003a0    0 SECTION LOCAL  .gnu.hash     
                      
    6: 00000000000003c8    0 SECTION LOCAL  .dynsym       
                      
    7: 00000000000004e8    0 SECTION LOCAL  .dynstr       
                      
    8: 00000000000005a0    0 SECTION LOCAL  .gnu.version  
                      
    9: 00000000000005b8    0 SECTION LOCAL  .gnu.version_r
                      
   10: 00000000000005e8    0 SECTION LOCAL  .rela.dyn     
                      
   11: 00000000000006d8    0 SECTION LOCAL  .rela.plt     
                      
   12: 0000000000001000    0 SECTION LOCAL  .init         
                      
   13: 0000000000001020    0 SECTION LOCAL  .plt          
                      
   14: 0000000000001080    0 SECTION LOCAL  .plt.got      
                      
   15: 0000000000001090    0 SECTION LOCAL  .plt.sec      
                      
   16: 00000000000010e0    0 SECTION LOCAL  .text         
                      
   17: 0000000000001468    0 SECTION LOCAL  .fini         
                      
   18: 0000000000002000    0 SECTION LOCAL  .rodata       
                      
   19: 0000000000002030    0 SECTION LOCAL  .eh_frame_hdr 
                      
   20: 0000000000002078    0 SECTION LOCAL  .eh_frame     
                      
   21: 0000000000003d98    0 SECTION LOCAL  .init_array   
                      
   22: 0000000000003da0    0 SECTION LOCAL  .fini_array   
                      
   23: 0000000000003da8    0 SECTION LOCAL  .dynamic      
                      
   24: 0000000000003f98    0 SECTION LOCAL  .got          
                      
   25: 0000000000004000    0 SECTION LOCAL  .data         
                      
   26: 0000000000004020    0 SECTION LOCAL  .bss          
                      
   27: 0000000000000000    0 SECTION LOCAL  .comment      
                      
   28: 0000000000000000    0 FILE    LOCAL  ABS           
  crtstuff.c          
   29: 0000000000001110    0 FUNC    LOCAL  .text         
  deregister_tm_clones
   30: 0000000000001140    0 FUNC    LOCAL  .text         
  register_tm_clones  
   31: 0000000000001180    0 FUNC    LOCAL  .text         
  __do_global_dtors...
   32: 0000000000004028    1 OBJECT  LOCAL  .bss          
  completed.8060      
   33: 0000000000003da0    0 OBJECT  LOCAL  .fini_array   
  __do_global_dtors...
   34: 00000000000011c0    0 FUNC    LOCAL  .text         
  frame_dummy         
   35: 0000000000003d98    0 OBJECT  LOCAL  .init_array   
  __frame_dummy_ini...
   36: 0000000000000000    0 FILE    LOCAL  ABS           
  main1.c             
   37: 0000000000000000    0 FILE    LOCAL  ABS           
  crtstuff.c          
   38: 0000000000002184    0 OBJECT  LOCAL  .eh_frame     
  __FRAME_END__       
   39: 0000000000000000    0 FILE    LOCAL  ABS           
                      
   40: 0000000000003da0    0 NOTYPE  LOCAL  .init_array   
  __init_array_end    
   41: 0000000000003da8    0 OBJECT  LOCAL  .dynamic      
  _DYNAMIC            
   42: 0000000000003d98    0 NOTYPE  LOCAL  .init_array   
  __init_array_start  
   43: 0000000000002030    0 NOTYPE  LOCAL  .eh_frame_hdr 
  __GNU_EH_FRAME_HDR  
   44: 0000000000003f98    0 OBJECT  LOCAL  .got          
  _GLOBAL_OFFSET_TA...
   45: 0000000000001000    0 FUNC    LOCAL  .init         
  _init               
   46: 0000000000001460    5 FUNC    GLOBAL .text         
  __libc_csu_fini     
   47: 0000000000000000    0 FUNC    GLOBAL UND           
  strncpy@@GLIBC_2.2.5
   48: 0000000000000000    0 NOTYPE  WEAK   UND           
  _ITM_deregisterTM...
   49: 0000000000004000    0 NOTYPE  WEAK   .data         
  data_start          
   50: 0000000000000000    0 FUNC    GLOBAL UND           
  puts@@GLIBC_2.2.5   
   51: 0000000000004020    8 OBJECT  GLOBAL .bss          
  stdin@@GLIBC_2.2.5  
   52: 0000000000004018    0 NOTYPE  GLOBAL .data         
  _edata              
   53: 0000000000004010    8 OBJECT  GLOBAL .data         
  pass                
   54: 0000000000001468    0 FUNC    GLOBAL .fini         
  _fini               
   55: 0000000000000000    0 FUNC    GLOBAL UND           
  __stack_chk_fail@...
   56: 0000000000000000    0 FUNC    GLOBAL UND           
  __libc_start_main...
   57: 0000000000000000    0 FUNC    GLOBAL UND           
  fgets@@GLIBC_2.2.5  
   58: 0000000000004000    0 NOTYPE  GLOBAL .data         
  __data_start        
   59: 0000000000000000    0 FUNC    GLOBAL UND           
  strcmp@@GLIBC_2.2.5 
   60: 0000000000000000    0 NOTYPE  WEAK   UND           
  __gmon_start__      
   61: 0000000000004008    0 OBJECT  GLOBAL .data         
  __dso_handle        
   62: 0000000000002000    4 OBJECT  GLOBAL .rodata       
  _IO_stdin_used      
   63: 00000000000013f0  101 FUNC    GLOBAL .text         
  __libc_csu_init     
   64: 0000000000004030    0 NOTYPE  GLOBAL .bss          
  _end                
   65: 00000000000010e0   47 FUNC    GLOBAL .text         
  _start              
   66: 0000000000004018    0 NOTYPE  GLOBAL .bss          
  __bss_start         
   67: 00000000000011c9  537 FUNC    GLOBAL .text         
  main                
   68: 0000000000004018    0 OBJECT  GLOBAL .data         
  __TMC_END__         
   69: 0000000000000000    0 NOTYPE  WEAK   UND           
  _ITM_registerTMCl...
   70: 0000000000000000    0 FUNC    WEAK   UND           
  __cxa_finalize@@G... 

Reverse engineering

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

./crackme
Output
./crackme
Enter password:
Go away!

As usual, failing to provide the good one greets us with an error message, while we can guess that we want the Welcome! message from the .rodata section (0x2000).

Looking at the dynamic symbol table shows us the dynamically linked functions the program may call: here puts for output and fgets for input, but also strncpy and strcmp for data processing.

Symbol table '.dynsym' contains 12 entries:
Num: Value Size Type Bind Section Name
0: 0000000000000000 0 NOTYPE LOCAL UND
1: 0000000000000000 0 FUNC GLOBAL UND strncpy
2: 0000000000000000 0 NOTYPE WEAK UND _ITM_deregiste...
3: 0000000000000000 0 FUNC GLOBAL UND puts
4: 0000000000000000 0 FUNC GLOBAL UND __stack_chk_fail
5: 0000000000000000 0 FUNC GLOBAL UND __libc_start_main
6: 0000000000000000 0 FUNC GLOBAL UND fgets
7: 0000000000000000 0 FUNC GLOBAL UND strcmp
8: 0000000000000000 0 NOTYPE WEAK UND __gmon_start__
9: 0000000000000000 0 NOTYPE WEAK UND _ITM_registerT...
10: 0000000000000000 0 FUNC WEAK UND __cxa_finalize
11: 0000000000004020 8 OBJECT GLOBAL .bss stdin

Generating the core dump

First, we need to generate a core dump. For this, we will use the script make coredump.sh.

This script is a wrapper around gdb. It runs the program with the environment variable LD BIND NOW set, such that the dynamic linker resolves all the dynamic functions at startup time, stopping at the main function and outputting the memory dump.

Gor the reproducibility, we can then use the script archive_sysroot.sh to create a copy of the files used by the snapshot.

We will illustrate the process with the challenge named crackme which comes from the site crackmes.one.

We have already prepared the files core.snapshot.tar.gz and sysroot.tar.gz .

Final script

We will use the following script.

crackme_script_1.ini
starting from core

replace <puts> (_) by
return 0
end

abort at <__stack_chk_fail>

stdin_pos<64> := 0
replace <fgets> (ptr, size, _) by
for i<64> in 0 to size - 1 do
@[ptr + i] := stdin[stdin_pos]
stdin_pos := stdin_pos + 1
end
return size
end

reach <puts> such that @[rdi, 8] = "Welcome!" then print c string stdin
cut at <main> return
Output

We are using an alternative statement starting from core to instruct the symbolic engine to concretize everything from the memory snapshot. It thus replaces loading of sections, initialization of the starting address and stack pointer.
The kind of thing we like to know!

note

Here, we no longer have to anchor the dynamic functions with @plt; we can directly use the symbol names (<SYMBOL>) that are automatically resolved by BINSEC.

tip

The abort at <__stack_chk_fail> statement is juste a shortcut for the following.

replace <__stack_chk_fail> by
assert false
end