私が気にする100の事象

気にしなければ始まらない。

12021-05-29

昨日の日記(12021-05-29)です。 天気は晴れ。 電波は普通。

仕事のお手伝い

親の仕事のお手伝いをしました。 定植です。 疲れました。

exeファイルを読んでみる 4日目

続きをしました。

コードセクション

ついにコードセクションです! アセンブリを読めますね!

まずコードセクションの全体を見てみましょう。

  Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000400: B8 2A 00 00 00 C3 CC CC CC CC CC CC CC CC CC CC    8*...CLLLLLLLLLL
00000410: CC CC CC CC CC CC 66 66 0F 1F 84 00 00 00 00 00    LLLLLLff........
00000420: 48 3B 0D E1 1F 00 00 F2 75 12 48 C1 C1 10 66 F7    H;.a...ru.HAA.fw
00000430: C1 FF FF F2 75 02 F2 C3 48 C1 C9 10 E9 AB 02 00    A..ru.rCHAI.i+..
00000440: 00 CC CC CC 40 53 48 83 EC 20 B9 01 00 00 00 E8    .LLL@SH.l.9....h
00000450: BA 0B 00 00 E8 E3 06 00 00 8B C8 E8 E4 0B 00 00    :...hc....Hhd...
00000460: E8 CB 06 00 00 8B D8 E8 08 0C 00 00 B9 01 00 00    hK....Xh....9...
00000470: 00 89 18 E8 44 04 00 00 84 C0 74 73 E8 3F 09 00    ...hD....@tsh?..
00000480: 00 48 8D 0D 74 09 00 00 E8 DF 05 00 00 E8 A2 06    .H..t...h_...h".
00000490: 00 00 8B C8 E8 81 0B 00 00 85 C0 75 52 E8 A2 06    ...Hh.....@uRh".
000004a0: 00 00 E8 E1 06 00 00 85 C0 74 0C 48 8D 0D 7E 06    ..ha....@t.H..~.
000004b0: 00 00 E8 5D 0B 00 00 E8 9C 06 00 00 E8 97 06 00    ..h]...h....h...
000004c0: 00 E8 6A 06 00 00 8B C8 E8 9B 0B 00 00 E8 82 06    .hj....Hh....h..
000004d0: 00 00 84 C0 74 05 E8 45 0B 00 00 E8 50 06 00 00    ...@t.hE...hP...
000004e0: E8 13 08 00 00 85 C0 75 06 48 83 C4 20 5B C3 B9    h.....@u.H.D.[C9
000004f0: 07 00 00 00 E8 B3 06 00 00 CC CC CC 48 83 EC 28    ....h3...LLLH.l(
00000500: E8 67 06 00 00 33 C0 48 83 C4 28 C3 48 83 EC 28    hg...3@H.D(CH.l(
00000510: E8 3F 08 00 00 E8 16 06 00 00 8B C8 48 83 C4 28    h?...h.....HH.D(
00000520: E9 49 0B 00 00 CC CC CC 48 89 5C 24 08 48 89 74    iI...LLLH.\$.H.t
00000530: 24 10 57 48 83 EC 30 B9 01 00 00 00 E8 2F 03 00    $.WH.l09....h/..
00000540: 00 84 C0 0F 84 36 01 00 00 40 32 F6 40 88 74 24    ..@..6...@2v@.t$
00000550: 20 E8 DE 02 00 00 8A D8 8B 0D 52 24 00 00 83 F9    .h^....X..R$...y
00000560: 01 0F 84 23 01 00 00 85 C9 75 4A C7 05 3B 24 00    ...#....IuJG.;$.
00000570: 00 01 00 00 00 48 8D 15 64 10 00 00 48 8D 0D 45    .....H..d...H..E
00000580: 10 00 00 E8 AA 0A 00 00 85 C0 74 0A B8 FF 00 00    ...h*....@t.8...
00000590: 00 E9 D9 00 00 00 48 8D 15 23 10 00 00 48 8D 0D    .iY...H..#...H..
000005a0: 0C 10 00 00 E8 83 0A 00 00 C7 05 FD 23 00 00 02    ....h....G.}#...
000005b0: 00 00 00 EB 08 40 B6 01 40 88 74 24 20 8A CB E8    ...k.@6.@.t$..Kh
000005c0: 1C 04 00 00 E8 CB 05 00 00 48 8B D8 48 83 38 00    ....hK...H.XH.8.
000005d0: 74 1E 48 8B C8 E8 6E 03 00 00 84 C0 74 12 45 33    t.H.Hhn....@t.E3
000005e0: C0 41 8D 50 02 33 C9 48 8B 03 FF 15 A8 0F 00 00    @A.P.3IH....(...
000005f0: E8 A7 05 00 00 48 8B D8 48 83 38 00 74 14 48 8B    h'...H.XH.8.t.H.
00000600: C8 E8 42 03 00 00 84 C0 74 08 48 8B 0B E8 50 0A    HhB....@t.H..hP.
00000610: 00 00 E8 0F 0A 00 00 48 8B F8 E8 31 0A 00 00 48    ..h....H.xh1...H
00000620: 8B 18 E8 23 0A 00 00 4C 8B C7 48 8B D3 8B 08 E8    ..h#...L.GH.S..h
00000630: CC FD FF FF 8B D8 E8 C5 06 00 00 84 C0 74 55 40    L}...XhE....@tU@
00000640: 84 F6 75 05 E8 0D 0A 00 00 33 D2 B1 01 E8 B2 03    .vu.h....3R1.h2.
00000650: 00 00 8B C3 EB 19 8B D8 E8 A3 06 00 00 84 C0 74    ...Ck..Xh#....@t
00000660: 3B 80 7C 24 20 00 75 05 E8 EF 09 00 00 8B C3 48    ;.|$..u.ho....CH
00000670: 8B 5C 24 40 48 8B 74 24 48 48 83 C4 30 5F C3 B9    .\$@H.t$HH.D0_C9
00000680: 07 00 00 00 E8 23 05 00 00 90 B9 07 00 00 00 E8    ....h#....9....h
00000690: 18 05 00 00 8B CB E8 9D 09 00 00 90 8B CB E8 9B    .....Kh......Kh.
000006a0: 09 00 00 90 48 83 EC 28 E8 D7 03 00 00 48 83 C4    ....H.l(hW...H.D
000006b0: 28 E9 72 FE FF FF CC CC 40 53 48 83 EC 20 48 8B    (ir~..LL@SH.l.H.
000006c0: D9 33 C9 FF 15 57 0D 00 00 48 8B CB FF 15 46 0D    Y3I..W...H.K..F.
000006d0: 00 00 FF 15 98 0D 00 00 48 8B C8 BA 09 04 00 C0    ........H.H:...@
000006e0: 48 83 C4 20 5B 48 FF 25 7C 0D 00 00 48 89 4C 24    H.D.[H.%|...H.L$
000006f0: 08 48 83 EC 38 B9 17 00 00 00 E8 93 09 00 00 85    .H.l89....h.....
00000700: C0 74 07 B9 02 00 00 00 CD 29 48 8D 0D CF 1D 00    @t.9....M)H..O..
00000710: 00 E8 AA 00 00 00 48 8B 44 24 38 48 89 05 B6 1E    .h*...H.D$8H..6.
00000720: 00 00 48 8D 44 24 38 48 83 C0 08 48 89 05 46 1E    ..H.D$8H.@.H..F.
00000730: 00 00 48 8B 05 9F 1E 00 00 48 89 05 10 1D 00 00    ..H......H......
00000740: 48 8B 44 24 40 48 89 05 14 1E 00 00 C7 05 EA 1C    H.D$@H......G.j.
00000750: 00 00 09 04 00 C0 C7 05 E4 1C 00 00 01 00 00 00    .....@G.d.......
00000760: C7 05 EE 1C 00 00 01 00 00 00 B8 08 00 00 00 48    G.n.......8....H
00000770: 6B C0 00 48 8D 0D E6 1C 00 00 48 C7 04 01 02 00    k@.H..f...HG....
00000780: 00 00 B8 08 00 00 00 48 6B C0 00 48 8B 0D 76 1C    ..8....Hk@.H..v.
00000790: 00 00 48 89 4C 04 20 B8 08 00 00 00 48 6B C0 01    ..H.L..8....Hk@.
000007a0: 48 8B 0D 59 1C 00 00 48 89 4C 04 20 48 8D 0D 5D    H..Y...H.L..H..]
000007b0: 0E 00 00 E8 00 FF FF FF 48 83 C4 38 C3 CC CC CC    ...h....H.D8CLLL
000007c0: 40 53 56 57 48 83 EC 40 48 8B D9 FF 15 77 0C 00    @SVWH.l@H.Y..w..
000007d0: 00 48 8B B3 F8 00 00 00 33 FF 45 33 C0 48 8D 54    .H.3x...3.E3@H.T
000007e0: 24 60 48 8B CE FF 15 1D 0C 00 00 48 85 C0 74 39    $`H.N......H.@t9
000007f0: 48 83 64 24 38 00 48 8D 4C 24 68 48 8B 54 24 60    H.d$8.H.L$hH.T$`
00000800: 4C 8B C8 48 89 4C 24 30 4C 8B C6 48 8D 4C 24 70    L.HH.L$0L.FH.L$p
00000810: 48 89 4C 24 28 33 C9 48 89 5C 24 20 FF 15 EE 0B    H.L$(3IH.\$...n.
00000820: 00 00 FF C7 83 FF 02 7C B1 48 83 C4 40 5F 5E 5B    ...G...|1H.D@_^[
00000830: C3 CC CC CC 48 83 EC 28 E8 9F 07 00 00 85 C0 74    CLLLH.l(h.....@t
00000840: 21 65 48 8B 04 25 30 00 00 00 48 8B 48 08 EB 05    !eH..%0...H.H.k.
00000850: 48 3B C8 74 14 33 C0 F0 48 0F B1 0D 58 21 00 00    H;Ht.3@pH.1.X!..
00000860: 75 EE 32 C0 48 83 C4 28 C3 B0 01 EB F7 CC CC CC    un2@H.D(C0.kwLLL
00000870: 40 53 48 83 EC 20 0F B6 05 43 21 00 00 85 C9 BB    @SH.l..6.C!...I;
00000880: 01 00 00 00 0F 44 C3 88 05 33 21 00 00 E8 A6 05    .....DC..3!..h&.
00000890: 00 00 E8 BD 02 00 00 84 C0 75 04 32 C0 EB 14 E8    ..h=....@u.2@k.h
000008a0: B0 02 00 00 84 C0 75 09 33 C9 E8 A5 02 00 00 EB    0....@u.3Ih%...k
000008b0: EA 8A C3 48 83 C4 20 5B C3 CC CC CC 40 53 48 83    j.CH.D.[CLLL@SH.
000008c0: EC 20 80 3D F8 20 00 00 00 8B D9 75 67 83 F9 01    l..=x.....Yug.y.
000008d0: 77 6A E8 05 07 00 00 85 C0 74 28 85 DB 75 24 48    wjh.....@t(.[u$H
000008e0: 8D 0D E2 20 00 00 E8 8F 07 00 00 85 C0 75 10 48    ..b...h.....@u.H
000008f0: 8D 0D EA 20 00 00 E8 7F 07 00 00 85 C0 74 2E 32    ..j...h.....@t.2
00000900: C0 EB 33 66 0F 6F 05 15 0D 00 00 48 83 C8 FF F3    @k3f.o.....H.H.s
00000910: 0F 7F 05 B1 20 00 00 48 89 05 BA 20 00 00 F3 0F    ...1...H..:...s.
00000920: 7F 05 BA 20 00 00 48 89 05 C3 20 00 00 C6 05 8D    ..:...H..C...F..
00000930: 20 00 00 01 B0 01 48 83 C4 20 5B C3 B9 05 00 00    ....0.H.D.[C9...
00000940: 00 E8 66 02 00 00 CC CC 48 83 EC 18 4C 8B C1 B8    .hf...LLH.l.L.A8
00000950: 4D 5A 00 00 66 39 05 A5 EA FF FF 75 78 48 63 0D    MZ..f9.%j..uxHc.
00000960: D8 EA FF FF 48 8D 15 95 EA FF FF 48 03 CA 81 39    Xj..H...j..H.J.9
00000970: 50 45 00 00 75 5F B8 0B 02 00 00 66 39 41 18 75    PE..u_8....f9A.u
00000980: 54 4C 2B C2 0F B7 41 14 48 8D 51 18 48 03 D0 0F    TL+B.7A.H.Q.H.P.
00000990: B7 41 06 48 8D 0C 80 4C 8D 0C CA 48 89 14 24 49    7A.H...L..JH..$I
000009a0: 3B D1 74 18 8B 4A 0C 4C 3B C1 72 0A 8B 42 08 03    ;Qt..J.L;Ar..B..
000009b0: C1 4C 3B C0 72 08 48 83 C2 28 EB DF 33 D2 48 85    AL;@r.H.B(k_3RH.
000009c0: D2 75 04 32 C0 EB 14 83 7A 24 00 7D 04 32 C0 EB    Ru.2@k..z$.}.2@k
000009d0: 0A B0 01 EB 06 32 C0 EB 02 32 C0 48 83 C4 18 C3    .0.k.2@k.2@H.D.C
000009e0: 40 53 48 83 EC 20 8A D9 E8 EF 05 00 00 33 D2 85    @SH.l..Yho...3R.
000009f0: C0 74 0B 84 DB 75 07 48 87 15 BA 1F 00 00 48 83    @t..[u.H..:...H.
00000a00: C4 20 5B C3 40 53 48 83 EC 20 80 3D AF 1F 00 00    D.[C@SH.l..=/...
00000a10: 00 8A D9 74 04 84 D2 75 0C E8 36 01 00 00 8A CB    ..Yt..Ru.h6....K
00000a20: E8 2F 01 00 00 B0 01 48 83 C4 20 5B C3 CC CC CC    h/...0.H.D.[CLLL
00000a30: 40 53 48 83 EC 20 48 83 3D 8A 1F 00 00 FF 48 8B    @SH.l.H.=.....H.
00000a40: D9 75 07 E8 3E 06 00 00 EB 0F 48 8B D3 48 8D 0D    Yu.h>...k.H.SH..
00000a50: 74 1F 00 00 E8 27 06 00 00 33 D2 85 C0 48 0F 44    t...h'...3R.@H.D
00000a60: D3 48 8B C2 48 83 C4 20 5B C3 CC CC 48 83 EC 28    SH.BH.D.[CLLH.l(
00000a70: E8 BB FF FF FF 48 F7 D8 1B C0 F7 D8 FF C8 48 83    h;...HwX.@wX.HH.
00000a80: C4 28 C3 CC 48 89 5C 24 20 55 48 8B EC 48 83 EC    D(CLH.\$.UH.lH.l
00000a90: 20 48 8B 05 70 19 00 00 48 BB 32 A2 DF 2D 99 2B    .H..p...H;2"_-.+
00000aa0: 00 00 48 3B C3 75 74 48 83 65 18 00 48 8D 4D 18    ..H;CutH.e..H.M.
00000ab0: FF 15 8A 09 00 00 48 8B 45 18 48 89 45 10 FF 15    ......H.E.H.E...
00000ac0: 3C 09 00 00 8B C0 48 31 45 10 FF 15 80 09 00 00    <....@H1E.......
00000ad0: 8B C0 48 8D 4D 20 48 31 45 10 FF 15 78 09 00 00    .@H.M.H1E...x...
00000ae0: 8B 45 20 48 8D 4D 10 48 C1 E0 20 48 33 45 20 48    .E.H.M.HA`.H3E.H
00000af0: 33 45 10 48 33 C1 48 B9 FF FF FF FF FF FF 00 00    3E.H3AH9........
00000b00: 48 23 C1 48 B9 33 A2 DF 2D 99 2B 00 00 48 3B C3    H#AH93"_-.+..H;C
00000b10: 48 0F 44 C1 48 89 05 ED 18 00 00 48 8B 5C 24 48    H.DAH..m...H.\$H
00000b20: 48 F7 D0 48 89 05 D6 18 00 00 48 83 C4 20 5D C3    HwPH..V...H.D.]C
00000b30: 33 C0 C3 CC B8 01 00 00 00 C3 CC CC B8 00 40 00    3@CL8....CLL8.@.
00000b40: 00 C3 CC CC 48 8D 0D B5 1E 00 00 48 FF 25 E6 08    .CLLH..5...H.%f.
00000b50: 00 00 CC CC B0 01 C3 CC C2 00 00 CC 48 8D 05 AD    ..LL0.CLB..LH..-
00000b60: 1E 00 00 C3 48 8D 05 AD 1E 00 00 C3 48 83 EC 28    ...CH..-...CH.l(
00000b70: E8 E7 FF FF FF 48 83 08 24 E8 E6 FF FF FF 48 83    hg...H..$hf...H.
00000b80: 08 02 48 83 C4 28 C3 CC 33 C0 39 05 84 18 00 00    ..H.D(CL3@9.....
00000b90: 0F 94 C0 C3 48 8D 05 A5 1E 00 00 C3 48 8D 05 95    ..@CH..%...CH...
00000ba0: 1E 00 00 C3 83 25 75 1E 00 00 00 C3 48 89 5C 24    ...C.%u....CH.\$
00000bb0: 08 55 48 8D AC 24 40 FB FF FF 48 81 EC C0 05 00    .UH.,$@{..H.l@..
00000bc0: 00 8B D9 B9 17 00 00 00 E8 C5 04 00 00 85 C0 74    ..Y9....hE....@t
00000bd0: 04 8B CB CD 29 B9 03 00 00 00 E8 C5 FF FF FF 33    ..KM)9....hE...3
00000be0: D2 48 8D 4D F0 41 B8 D0 04 00 00 E8 12 04 00 00    RH.MpA8P...h....
00000bf0: 48 8D 4D F0 FF 15 4E 08 00 00 48 8B 9D E8 00 00    H.Mp..N...H..h..
00000c00: 00 48 8D 95 D8 04 00 00 48 8B CB 45 33 C0 FF 15    .H..X...H.KE3@..
00000c10: F4 07 00 00 48 85 C0 74 3C 48 83 64 24 38 00 48    t...H.@t<H.d$8.H
00000c20: 8D 8D E0 04 00 00 48 8B 95 D8 04 00 00 4C 8B C8    ..`...H..X...L.H
00000c30: 48 89 4C 24 30 4C 8B C3 48 8D 8D E8 04 00 00 48    H.L$0L.CH..h...H
00000c40: 89 4C 24 28 48 8D 4D F0 48 89 4C 24 20 33 C9 FF    .L$(H.MpH.L$.3I.
00000c50: 15 BB 07 00 00 48 8B 85 C8 04 00 00 48 8D 4C 24    .;...H..H...H.L$
00000c60: 50 48 89 85 E8 00 00 00 33 D2 48 8D 85 C8 04 00    PH..h...3RH..H..
00000c70: 00 41 B8 98 00 00 00 48 83 C0 08 48 89 85 88 00    .A8....H.@.H....
00000c80: 00 00 E8 7B 03 00 00 48 8B 85 C8 04 00 00 48 89    ..h{...H..H...H.
00000c90: 44 24 60 C7 44 24 50 15 00 00 40 C7 44 24 54 01    D$`GD$P...@GD$T.
00000ca0: 00 00 00 FF 15 87 07 00 00 83 F8 01 48 8D 44 24    ..........x.H.D$
00000cb0: 50 48 89 44 24 40 48 8D 45 F0 0F 94 C3 48 89 44    PH.D$@H.Ep..CH.D
00000cc0: 24 48 33 C9 FF 15 56 07 00 00 48 8D 4C 24 40 FF    $H3I..V...H.L$@.
00000cd0: 15 43 07 00 00 85 C0 75 0C 84 DB 75 08 8D 48 03    .C....@u..[u..H.
00000ce0: E8 BF FE FF FF 48 8B 9C 24 D0 05 00 00 48 81 C4    h?~..H..$P...H.D
00000cf0: C0 05 00 00 5D C3 CC CC E9 33 FE FF FF CC CC CC    @...]CLLi3~..LLL
00000d00: 48 83 EC 28 33 C9 FF 15 1C 07 00 00 48 85 C0 74    H.l(3I......H.@t
00000d10: 3A B9 4D 5A 00 00 66 39 08 75 30 48 63 48 3C 48    :9MZ..f9.u0HcH<H
00000d20: 03 C8 81 39 50 45 00 00 75 21 B8 0B 02 00 00 66    .H.9PE..u!8....f
00000d30: 39 41 18 75 16 83 B9 84 00 00 00 0E 76 0D 83 B9    9A.u..9.....v..9
00000d40: F8 00 00 00 00 74 04 B0 01 EB 02 32 C0 48 83 C4    x....t.0.k.2@H.D
00000d50: 28 C3 CC CC 48 8D 0D 09 00 00 00 48 FF 25 BE 06    (CLLH......H.%>.
00000d60: 00 00 CC CC 48 89 5C 24 08 57 48 83 EC 20 48 8B    ..LLH.\$.WH.l.H.
00000d70: 19 48 8B F9 81 3B 63 73 6D E0 75 1C 83 7B 18 04    .H.y.;csm`u..{..
00000d80: 75 16 8B 53 20 8D 82 E0 FA 6C E6 83 F8 02 76 15    u..S...`zlf.x.v.
00000d90: 81 FA 00 40 99 01 74 0D 48 8B 5C 24 30 33 C0 48    .z.@..t.H.\$03@H
00000da0: 83 C4 20 5F C3 E8 4C 02 00 00 48 89 18 48 8B 5F    .D._ChL...H..H._
00000db0: 08 E8 46 02 00 00 48 89 18 E8 CE 02 00 00 CC CC    .hF...H..hN...LL
00000dc0: 48 89 5C 24 08 57 48 83 EC 20 48 8D 1D 17 0D 00    H.\$.WH.l.H.....
00000dd0: 00 48 8D 3D 10 0D 00 00 EB 12 48 8B 03 48 85 C0    .H.=....k.H..H.@
00000de0: 74 06 FF 15 B0 07 00 00 48 83 C3 08 48 3B DF 72    t...0...H.C.H;_r
00000df0: E9 48 8B 5C 24 30 48 83 C4 20 5F C3 48 89 5C 24    iH.\$0H.D._CH.\$
00000e00: 08 57 48 83 EC 20 48 8D 1D EB 0C 00 00 48 8D 3D    .WH.l.H..k...H.=
00000e10: E4 0C 00 00 EB 12 48 8B 03 48 85 C0 74 06 FF 15    d...k.H..H.@t...
00000e20: 74 07 00 00 48 83 C3 08 48 3B DF 72 E9 48 8B 5C    t...H.C.H;_riH.\
00000e30: 24 30 48 83 C4 20 5F C3 48 89 5C 24 10 48 89 74    $0H.D._CH.\$.H.t
00000e40: 24 18 57 48 83 EC 10 33 C0 33 C9 0F A2 44 8B C1    $.WH.l.3@3I."D.A
00000e50: 45 33 DB 44 8B CB 41 81 F0 6E 74 65 6C 41 81 F1    E3[D.KA.pntelA.q
00000e60: 47 65 6E 75 44 8B D2 8B F0 33 C9 41 8D 43 01 45    GenuD.R.p3IA.C.E
00000e70: 0B C8 0F A2 41 81 F2 69 6E 65 49 89 04 24 45 0B    .H."A.rineI..$E.
00000e80: CA 89 5C 24 04 8B F9 89 4C 24 08 89 54 24 0C 75    J.\$..y.L$..T$.u
00000e90: 50 48 83 0D 87 15 00 00 FF 25 F0 3F FF 0F 3D C0    PH.......%p?..=@
00000ea0: 06 01 00 74 28 3D 60 06 02 00 74 21 3D 70 06 02    ...t(=`...t!=p..
00000eb0: 00 74 1A 05 B0 F9 FC FF 83 F8 20 77 24 48 B9 01    .t..0y|..x.w$H9.
00000ec0: 00 01 00 01 00 00 00 48 0F A3 C1 73 14 44 8B 05    .......H.#As.D..
00000ed0: 5C 1B 00 00 41 83 C8 01 44 89 05 51 1B 00 00 EB    \...A.H.D..Q...k
00000ee0: 07 44 8B 05 48 1B 00 00 B8 07 00 00 00 44 8D 48    .D..H...8....D.H
00000ef0: FB 3B F0 7C 26 33 C9 0F A2 89 04 24 44 8B DB 89    {;p|&3I."..$D.[.
00000f00: 5C 24 04 89 4C 24 08 89 54 24 0C 0F BA E3 09 73    \$..L$..T$..:c.s
00000f10: 0A 45 0B C1 44 89 05 15 1B 00 00 C7 05 F3 14 00    .E.AD......G.s..
00000f20: 00 01 00 00 00 44 89 0D F0 14 00 00 0F BA E7 14    .....D..p....:g.
00000f30: 0F 83 91 00 00 00 44 89 0D DB 14 00 00 BB 06 00    ......D..[...;..
00000f40: 00 00 89 1D D4 14 00 00 0F BA E7 1B 73 79 0F BA    ....T....:g.sy.:
00000f50: E7 1C 73 73 33 C9 0F 01 D0 48 C1 E2 20 48 0B D0    g.ss3I..PHAb.H.P
00000f60: 48 89 54 24 20 48 8B 44 24 20 22 C3 3A C3 75 57    H.T$.H.D$."C:CuW
00000f70: 8B 05 A6 14 00 00 83 C8 08 C7 05 95 14 00 00 03    ..&....H.G......
00000f80: 00 00 00 89 05 93 14 00 00 41 F6 C3 20 74 38 83    .........AvC.t8.
00000f90: C8 20 C7 05 7C 14 00 00 05 00 00 00 89 05 7A 14    H.G.|.........z.
00000fa0: 00 00 B8 00 00 03 D0 44 23 D8 44 3B D8 75 18 48    ..8...PD#XD;Xu.H
00000fb0: 8B 44 24 20 24 E0 3C E0 75 0D 83 0D 5B 14 00 00    .D$.$`<`u...[...
00000fc0: 40 89 1D 51 14 00 00 48 8B 5C 24 28 33 C0 48 8B    @..Q...H.\$(3@H.
00000fd0: 74 24 30 48 83 C4 10 5F C3 CC CC CC 33 C0 39 05    t$0H.D._CLLL3@9.
00000fe0: 4C 14 00 00 0F 95 C0 C3 CC CC CC CC CC CC CC CC    L.....@CLLLLLLLL
00000ff0: FF 25 A2 04 00 00 FF 25 84 04 00 00 FF 25 86 04    .%"....%.....%..
00001000: 00 00 FF 25 88 04 00 00 FF 25 12 05 00 00 FF 25    ...%.....%.....%
00001010: DC 04 00 00 FF 25 AE 04 00 00 FF 25 38 05 00 00    \....%.....%8...
00001020: FF 25 2A 05 00 00 FF 25 1C 05 00 00 FF 25 0E 05    .%*....%.....%..
00001030: 00 00 FF 25 00 05 00 00 FF 25 F2 04 00 00 FF 25    ...%.....%r....%
00001040: E4 04 00 00 FF 25 2E 05 00 00 FF 25 C8 04 00 00    d....%.....%H...
00001050: FF 25 BA 04 00 00 FF 25 AC 04 00 00 FF 25 9E 04    .%:....%,....%..
00001060: 00 00 FF 25 78 04 00 00 FF 25 4A 04 00 00 FF 25    ...%x....%J....%
00001070: 34 04 00 00 FF 25 F6 04 00 00 FF 25 78 04 00 00    4....%v....%x...
00001080: FF 25 DA 04 00 00 FF 25 5C 04 00 00 FF 25 46 04    .%Z....%\....%F.
00001090: 00 00 FF 25 C8 03 00 00 CC CC CC CC CC CC CC CC    ...%H...LLLLLLLL
000010a0: CC CC CC CC CC CC 66 66 0F 1F 84 00 00 00 00 00    LLLLLLff........
000010b0: FF E0 CC CC CC CC CC CC CC CC CC CC CC CC CC CC    .`LLLLLLLLLLLLLL
000010c0: CC CC CC CC CC CC 66 66 0F 1F 84 00 00 00 00 00    LLLLLLff........
000010d0: FF 25 C2 04 00 00 40 55 48 83 EC 20 48 8B EA 48    .%B...@UH.l.H.jH
000010e0: 8B 01 48 8B D1 8B 08 E8 1C FF FF FF 90 48 83 C4    ..H.Q..h.....H.D
000010f0: 20 5D C3 CC 40 55 48 8B EA 48 8B 01 33 C9 81 38    .]CL@UH.jH..3I.8
00001100: 05 00 00 C0 0F 94 C1 8B C1 5D C3 CC 00 00 00 00    ...@..A.A]CL....
00001110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00001120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00001130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00001140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00001150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00001160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00001170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00001180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00001190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000011a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000011b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000011c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000011d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000011e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000011f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

長っっ!

全部見るのはさすがにしんどいですが、 重要なところが最初に書いてあるので見てみましょう。

   Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 00000400: B8 2A 00 00 00 C3                                  8*...C

…今度は極端に短くなりましたが、 ここの部分は重要です。

   Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 00000400: B8 2A 00 00 00 C3                                  8*...C
!          B8 2A 00 00 00 <---------------------------------- mov eax, 0000002Ah
!                         C3 <------------------------------- ret

たった2行のアセンブリですが、

mov    eax, 0000002Ah
ret

EAXレジスタに2Ahを入れて、 retでリターンしていますね。

アセンブリあるあるで、 「関数の戻り値をEAXレジスタに格納しておく」 というのがあるので、 これはC言語return 0x2A;を意味しています。

ところで、 0x2Aは10進数だと42です。 なにか身に覚えがありませんか?

#include <stdio.h>

int main() {
    return 42;
}

そうです! コンパイルしたソースコードに書いてあったやつです!

そうか、形は変わっても君は君なんだね…!

ところで、

#include <stdio.h>

はいらなかったなと今思いました。 もう少し調査したら、 これを除いて、 再びコンパイルしてみます。

※再びコンパイルしてもバイト数は変わりませんでした。

エントリーポイント

エントリーポイントといって、 最初に実行される場所があります。

コードが00000400hから始まりますが、 必ずしも先端から始まるとは限りません。

ではどこから始まるかというと、 オプションヘッダのAddressOfEntryPointに書かれています。

   Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 00000110: 00 1E 00 00 00 00 00 00 A4 12 00 00 00 10 00 00    ........$.......
!                                  A4 12 00 00 <------------- AddressOfEntryPoint
!                                              00 10 00 00 <- BaseOfCode

12A4hですね。 この値はイメージベースとの相対アドレスなので、その値を引いてやる必要があります。 イメージベースのアドレスは、BaseOfCodeからわかります。 その値は1000hですね。 12A4h - 1000h = 02A4h なので、コードセクションが始まってから02A4h番目のところにエントリーポイントがあることがわかります。 コードセクションはこのファイルの00000400hから始まっているので、 00000400h + 02A4h = 000006A4h がこのファイルにおけるエントリーポイントの位置です。 それでは06A4hを見てみましょう。

   Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 000006a0: 09 00 00 90 48 83 EC 28 E8 D7 03 00 00 48 83 C4    ....H.l(hW...H.D
 000006b0: 28 E9 72 FE FF FF CC CC 40 53 48 83 EC 20 48 8B    (ir~..LL@SH.l.H.

該当する部分だけを切り取ると

   Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 000006a0:             48 83 EC 28 E8 D7 03 00 00 48 83 C4        H.l(hW...H.D
 000006b0: 28 E9 72 FE FF FF                                  (ir~..

アセンブラしてみましょう

   Offset: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
 000006a0:             48 83 EC 28 E8 D7 03 00 00 48 83 C4        H.l(hW...H.D
!                      48 83 EC 28 <------------------------- sub rsp, 28h
!                                  E8 D7 03 00 00 <---------- call 00000A84h
!                                                 48 83 C4
 000006b0: 28 E9 72 FE FF FF                                  (ir~..
!          28 <---------------------------------------------- add rsp, 28h
!             E9 72 FE FF FF <------------------------------- jmp 00000528h
sub   rsp, 28h
call  00000A84h
add   rsp, 28h
jmp   00000528h

RSPレジスタを28バイト分確保して、 00000A84hを呼び出し、 RSPレジスタを28バイト分開放して、 00000528hにジャンプしてます。

RSPは64ビットのスタックポインタで、 変数や、引数などのデータを保存するときに使います。

00000A84hを見てましょう。

mov     qword ptr [rsp+20h], rbx
push    rbp
mov     rbp, rsp
sub     rsp, 20h
mov     rax, qword ptr [0000000000002408h]
mov     rbx, 00002B992DDFA232h
cmp     rax, rbx
jne     00000B1Bh
and     qword ptr [rbp+18h], 0000000000000000h
lea     rcx, qword ptr [rbp+18h]
call    qword ptr [0000000000001440h]
mov     rax, qword ptr [rbp+18h]
mov     qword ptr [rbp+10h], rax
call    qword ptr [0000000000001400h]
mov     eax, eax
xor     qword ptr [rbp+10h], rax
call    qword ptr [0000000000001450h]
mov     eax, eax
lea     rcx, qword ptr [rbp+20h]
xor     qword ptr [rbp+10h], rax
call    qword ptr [0000000000001458h]
mov     eax, dword ptr [rbp+20h]
lea     rcx, qword ptr [rbp+10h]
shl     rax, 20h
xor     rax, qword ptr [rbp+20h]
xor     rax, qword ptr [rbp+10h]
xor     rax, rcx
mov     rcx, 0000FFFFFFFFFFFFh
and     rax, rcx
mov     rcx, 00002B992DDFA233h
cmp     rax, rbx
cmove   rax, rcx
mov     qword ptr [0000000000002408h], rax
mov     rbx, qword ptr [rsp+48h]
not     rax
mov     qword ptr [0000000000002400h], rax
add     rsp, 20h
pop     rbp
ret

00000528hを見てましょう。

mov     qword ptr [rsp+08h], rbx
mov     qword ptr [rsp+10h], rsi
push    rdi
sub     rsp, 30h
mov     ecx, 00000001h
call    00000870h
test    al, al
je      0000067Fh
xor     sil, sil
mov     byte ptr [rsp+20h], sil
call    00000834h
mov     bl, al
mov     ecx, dword ptr [00000000000029B0h]
cmp     ecx, 01h
je      0000068Ah
test    ecx, ecx
jne     000005B5h
mov     dword ptr [00000000000029B0h], 00000001h
lea     rdx, qword ptr [00000000000015E0h]
lea     rcx, qword ptr [00000000000015C8h]
call    00001032h
test    eax, eax
je      00000596h
mov     eax, 000000FFh
jmp     0000066Fh
lea     rdx, qword ptr [00000000000015C0h]
lea     rcx, qword ptr [00000000000015B0h]
call    0000102Ch
mov     dword ptr [00000000000029B0h], 00000002h
jmp     000005BDh
mov     dh, 01h
mov     byte ptr [rsp+20h], sil
mov     cl, bl
call    000009E0h
call    00000B94h
mov     rbx, rax
cmp     qword ptr [rax], 0000000000000000h
je      000005F0h
mov     rcx, rax
call    00000948h
test    al, al
je      000005F0h
xor     r8d, r8d
lea     edx, dword ptr [r8+02h]
xor     ecx, ecx
mov     rax, qword ptr [rbx]
call    qword ptr [0000000000001598h]
call    00000B9Ch
mov     rbx, rax
cmp     qword ptr [rax], 0000000000000000h
je      00000612h
mov     rcx, rax
call    00000948h
test    al, al
je      00000612h
mov     rcx, qword ptr [rbx]
call    00001062h
call    00001026h
mov     rdi, rax
call    00001050h
mov     rbx, qword ptr [rax]
call    0000104Ah
mov     r8, rdi
mov     rdx, rbx
mov     ecx, dword ptr [rax]
call    00000400h
; ここで main を呼び出していますね
mov     ebx, eax
call    00000D00h
test    al, al
je      00000694h
test    sil, sil
jne     00000649h
call    00001056h
xor     edx, edx
mov     cl, 01h
call    00000A04h
mov     eax, ebx
jmp     0000066Fh
mov     ebx, eax
call    00000D00h
test    al, al
je      0000069Ch
cmp     byte ptr [rsp+20h], 00h
jne     0000066Dh
call    0000105Ch
mov     eax, ebx
mov     rbx, qword ptr [rsp+40h]
mov     rsi, qword ptr [rsp+48h]
add     rsp, 30h
pop     rdi
ret

うーん、なんかやっているというのはわかりました。

でも何やってるか解析するのはまた今度でいいかな、という気持ちです。

VRChat

しのさんのいるワールドに行きました。

もうすでに寝ているような気がしましたが、 どこで寝ているか気になって探していると、 ベロイさんと会いました。

出合い頭にチェキを1枚撮られました。

ベロイさんと話していると、 ベロイさんのフレンドがたくさん来ました。

f:id:skytomo:20210531075743p:plain

しのさんを探していたら、 ベロイさんも一緒に探してくれました。

寝ているしのさんはベロイさんが見つけてくれました。 ちょっとある種の人を探す方法を教えてもらったので、 次チャンスがあったら使ってみたいと思います。

f:id:skytomo:20210531075348p:plain

おやすみなさい。

その後、MEROOMへ行きましたが、 別のゲームをするため、 なんやかんやあって、 ベロイさんとそのフレンドは落ちました。

Yurutoさんのいるワールドへ行きました。

f:id:skytomo:20210531075606p:plain

途中で左手のリモコンのバッテリーがなくなったので、 代わりに右手で頑張って移動していたのですが、 腱鞘炎になりかけました。

ペンギンさんという方からシェーダーの話を聞きました。 とても面白い話でした。

f:id:skytomo:20210531075643p:plain

この日は午前4時に寝ました。 おやすみなさい。