Skipper

75 ×

The given binary will give you the password... if you meet its criteria!



objdumpコマンドで逆アセンブルします。
$ objdump -s -D skipper-64
まず、下記の部分でComputer nameの文字列が一致するかチェックしています。
402711: bf 87 29 40 00       mov    $0x402987,%edi #Computer name: %s
402716: b8 00 00 00 00       mov    $0x0,%eax
40271b: e8 c0 e1 ff ff       callq  4008e0 <printf@plt>
402720: 48 8d 85 f0 fb ff ff lea    -0x410(%rbp),%rax
402727: be 9a 29 40 00       mov    $0x40299a,%esi #hax0rz!~
40272c: 48 89 c7             mov    %rax,%rdi
40272f: e8 fc e1 ff ff       callq  400930 <strcmp@plt>
402734: 85 c0                 test   %eax,%eax
402736: 74 23                 je     40275b <__ctype_b_loc@plt+0x1dab>
次に下記の部分でOS versionの文字列が一致するかチェックしています。
402774: bf dc 29 40 00       mov    $0x4029dc,%edi #OS version: %s
402779: b8 00 00 00 00       mov    $0x0,%eax
40277e: e8 5d e1 ff ff       callq  4008e0 <printf@plt>
402783: 48 8d 85 f0 fb ff ff lea    -0x410(%rbp),%rax
40278a: be ec 29 40 00       mov    $0x4029ec,%esi #2.4.31
40278f: 48 89 c7             mov    %rax,%rdi
402792: e8 99 e1 ff ff       callq  400930 <strcmp@plt>
402797: 85 c0                 test   %eax,%eax
402799: 74 48                 je     4027e3 <__ctype_b_loc@plt+0x1e33>
次に下記の部分でCPUIDがAMDisbetter!と一致するかチェックしています。
402808: be 29 2a 40 00       mov    $0x402a29,%esi #AMDisbetter!
40280d: 48 89 c7             mov    %rax,%rdi
402810: e8 1b e1 ff ff       callq  400930 <strcmp@plt>
402815: 85 c0                 test   %eax,%eax
402817: 74 24                 je     40283d <__ctype_b_loc@plt+0x1e8d>
コンピュータ名、OSバージョン、CPUIDすべて一致しませんので、バイナリエディタで下記の74(je)の命令コードを75(jne)に書き換えることで、処理が流れるようにします。
402736: 74 23                 je     40275b <__ctype_b_loc@plt+0x1dab>
(略)
402799: 74 48                 je     4027e3 <__ctype_b_loc@plt+0x1e33>
(略)
402817: 74 24                 je     40283d <__ctype_b_loc@plt+0x1e8d>
命令コードを書き換えた実行ファイルを実行すると、下記のとおりフラグが表示されました。
$ ./skipper-64-2
Computer name: ubuntu14-VirtualBox
OS version: 3.13.0
GenuineIntel
Result: FLAG:f51579e9ca38ba87d71539a9992887ff
フラグは、
FLAG:f51579e9ca38ba87d71539a9992887ff
です。