Aod JP-Patcher Ver 0.05

Phase 1 - ファイルの読み込み
  TargetFile: D:\Games\Paradox\AoD_Patch_105\AODGame.exe
  FileSize: 4286464Bytes
Phase 1 passed

Phase 2 - 実行ファイルの確認
  exe識別子: $5A4D
  PEの位置: 00000108
Phase 2 passed

Phase 3 - PEヘッダの確認
  PE識別子: $4550
  セクション数: 5
  シンボルテーブルの位置/数: $00000000/$00000000
  オプションヘッダのサイズ: $00E0
Phase 3 passed

Phase 4 - オプションヘッダの表示
  オプション部識別子: $010B
  コードセクションのサイズ: $0030A000 (3186688Bytes)
  初期化済みデータセクションのサイズ: $0279FA00 (41548288Bytes)
  未初期化データセクションのサイズ: $00000000 (0Bytes)
  エントリーポイント: $002BB2CD
  コードセクションの位置: $00001000
  データセクションの位置: $0030B000
  ベースアドレス: $00400000
  セクション境界: $00001000 (4096Bytes)
  ファイル境界: $00000200 (512Bytes)
  イメージサイズ: $02AAD000
  ヘッダサイズ: $00000400
  Export Table address/size: $00000000/$00000000
  Import Table address/size: $0039F814/$000000DC
  Resource Table address/size: $02A54000/$00001400
  Import Address Table address/size: $0030B000/$000002E4
  * コード領域: $00401000〜$0070AFFF (ファイル上: $00001000〜$0030AFFF)
  * プログラムが開始されるアドレス: $006BB2CD
Phase 4 passed

Phase 5 - セクションテーブルの表示
  セクション[0]
  セクション名: .text
  セクション仮想サイズ: $00309E8C (3186316Bytes)
  セクション仮想アドレス: $00001000
  セクション実サイズ: $0030A000 (3186688Bytes)
  セクション実位置: $00000400
  * 未使用領域: $0070AE8D〜$0070AFFF

  セクション[1]
  セクション名: .rdata
  セクション仮想サイズ: $000957DE (612318Bytes)
  セクション仮想アドレス: $0030B000
  セクション実サイズ: $00095800 (612352Bytes)
  セクション実位置: $0030A400
  * 未使用領域: $007A07DF〜$007A07FF

  セクション[2]
  セクション名: .data
  セクション仮想サイズ: $026B23F8 (40575992Bytes)
  セクション仮想アドレス: $003A1000
  セクション実サイズ: $0001EE00 (126464Bytes)
  セクション実位置: $0039FC00
  * 未使用領域: $02E533F9〜$02E53FFF

  セクション[3]
  セクション名: .rsrc
  セクション仮想サイズ: $00001400 (5120Bytes)
  セクション仮想アドレス: $02A54000
  セクション実サイズ: $00001400 (5120Bytes)
  セクション実位置: $003BEA00

  セクション[4]
  セクション名: .reloc
  セクション仮想サイズ: $000569E8 (354792Bytes)
  セクション仮想アドレス: $02A56000
  セクション実サイズ: $00056A00 (354816Bytes)
  セクション実位置: $003BFE00
Phase 5 passed

Phase 6 - インポートディレクトリテーブルの表示
  インポートディレクトリテーブル数: 37

  ImportLookupTableRVA: $0039FB8C
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $0039FBD4 (WS2_32.dll)
  ImportAddressTableRVA: $0030B29C
    0111 (Index)
    0115 (Index)
    0016 (Index)
    0019 (Index)
    0004 (Index)
    0009 (Index)
    0052 (Index)
    0008 (Index)
    0003 (Index)
    0023 (Index)
    0021 (Index)
    0053 (Index)
    0116 (Index)

  ImportLookupTableRVA: $0039F8F8
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $0039FBF6 (DDRAW.dll)
  ImportAddressTableRVA: $0030B008
    0010 DirectDrawCreateEx

  ImportLookupTableRVA: $0039F900
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $0039FC00 (DSOUND.dll)
  ImportAddressTableRVA: $0030B010
    0001 (Index)

  ImportLookupTableRVA: $0039FB78
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $0039FC50 (WINMM.dll)
  ImportAddressTableRVA: $0030B288
    0150 timeSetEvent
    0144 timeBeginPeriod
    0146 timeGetDevCaps
    0149 timeKillEvent

  ImportLookupTableRVA: $0039F910
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $003A0022 (KERNEL32.dll)
  ImportAddressTableRVA: $0030B020
    0619 GetTimeZoneInformation
    0490 GetLocaleInfoW
    0733 IsValidLocale
    0248 EnumSystemLocalesA
    0488 GetLocaleInfoA
    0621 GetUserDefaultLCID
    0576 GetStringTypeW
    0573 GetStringTypeA
    1154 WriteConsoleA
    0409 GetConsoleOutputCP
    1164 WriteConsoleW
    0973 SetEndOfFile
    0591 GetSystemTimeAsFileTime
    0614 GetTickCount
    0449 GetEnvironmentStringsW
    0331 FreeEnvironmentStringsW
    0447 GetEnvironmentStrings
    0330 FreeEnvironmentStringsA
    0180 DebugBreak
    0067 CloseHandle
    1057 Sleep
    0852 QueryPerformanceCounter
    0853 QueryPerformanceFrequency
    0453 GetExitCodeProcess
    0148 CreateProcessA
    0139 CreateMutexA
    0428 GetCurrentThread
    0426 GetCurrentProcessId
    0425 GetCurrentProcess
    0332 FreeLibrary
    1004 SetLastError
    0875 ReadProcessMemory
    0826 OutputDebugStringA
    0486 GetLastError
    0544 GetProcAddress
    0450 GetEnvironmentVariableA
    0457 GetFileAttributesA
    0753 LoadLibraryA
    0500 GetModuleFileNameA
    0629 GetVersionExA
    0423 GetCurrentDirectoryA
    0909 ResumeThread
    0604 GetThreadContext
    1063 SuspendThread
    0281 FindClose
    0302 FindNextFileA
    0285 FindFirstFileA
    0547 GetProcessHeap
    0442 GetDriveTypeA
    0657 GlobalMemoryStatus
    0794 MultiByteToWideChar
    0754 LoadLibraryExA
    0887 ReleaseMutex
    1125 WaitForSingleObjectEx
    0589 GetSystemTime
    0114 CreateEventA
    0261 ExitThread
    1122 WaitForMultipleObjects
    0373 GetComputerNameA
    1124 WaitForSingleObject
    0891 ReleaseSemaphore
    0163 CreateThread
    0153 CreateSemaphoreA
    0692 InitializeCriticalSection
    0190 DeleteCriticalSection
    0217 EnterCriticalSection
    0751 LeaveCriticalSection
    0429 GetCurrentThreadId
    0678 HeapSize
    0739 LCMapStringW
    1146 WideCharToMultiByte
    0693 InitializeCriticalSectionAndSpinCount
    0737 LCMapStringA
    0676 HeapReAlloc
    1108 VirtualAlloc
    1111 VirtualFree
    0671 HeapCreate
    0571 GetStdHandle
    1165 WriteFile
    1075 TlsFree
    1077 TlsSetValue
    1074 TlsAlloc
    1076 TlsGetValue
    0731 IsValidCodePage
    0531 GetOEMCP
    0338 GetACP
    0700 InterlockedDecrement
    0704 InterlockedIncrement
    0347 GetCPInfo
    0502 GetModuleHandleA
    0569 GetStartupInfoA
    0367 GetCommandLineA
    0701 InterlockedExchange
    0858 RaiseException
    0721 IsDebuggerPresent
    1069 TerminateProcess
    0192 DeleteFileA
    0471 GetFileType
    0082 CompareStringA
    0976 SetEnvironmentVariableA
    0085 CompareStringW
    1035 SetThreadPriority
    0120 CreateFileA
    1020 SetStdHandle
    0872 ReadFile
    0321 FlushFileBuffers
    0405 GetConsoleMode
    0387 GetConsoleCP
    0991 SetFilePointer
    1000 SetHandleCount
    0914 RtlUnwind
    0272 FileTimeToSystemTime
    0271 FileTimeToLocalFileTime
    0673 HeapFree
    1086 UnhandledExceptionFilter
    1045 SetUnhandledExceptionFilter
    0505 GetModuleHandleW
    0260 ExitProcess
    0669 HeapAlloc
    0464 GetFileInformationByHandle
    0830 PeekNamedPipe

  ImportLookupTableRVA: $0039FAF8
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $003A01E8 (USER32.dll)
  ImportAddressTableRVA: $0030B208
    0281 GetCursorPos
    0626 SetCursorPos
    0775 wsprintfA
    0292 GetFocus
    0056 CharUpperBuffA
    0160 DestroyWindow
    0149 DefWindowProcA
    0472 LoadImageA
    0542 PostMessageA
    0392 GetWindowRect
    0539 PeekMessageA
    0330 GetMessageA
    0725 TranslateMessage
    0168 DispatchMessageA
    0544 PostQuitMessage
    0470 LoadIconA
    0564 RegisterClassExA
    0367 GetSystemMetrics
    0103 CreateWindowExA
    0734 UnregisterClassA
    0284 GetDesktopWindow
    0691 ShowCursor
    0633 SetFocus
    0745 UpdateWindow
    0249 GetActiveWindow
    0504 MessageBoxA
    0696 ShowWindow

  ImportLookupTableRVA: $0039F908
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $003A0206 (GDI32.dll)
  ImportAddressTableRVA: $0030B018
    0500 GetStockObject

  ImportLookupTableRVA: $0039F8F0
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $003A0220 (ADVAPI32.dll)
  ImportAddressTableRVA: $0030B000
    0350 GetUserNameA

  ImportLookupTableRVA: $0039FBC4
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $003A0264 (ole32.dll)
  ImportAddressTableRVA: $0030B2D4
    0016 CoCreateInstance
    0061 CoInitialize
    0107 CoUninitialize

  ImportLookupTableRVA: $0039FB68
  TimeStamp: $00000000
  FowarderChain: $00000000
  NameRVA: $003A02B0 (VERSION.dll)
  ImportAddressTableRVA: $0030B278
    0002 GetFileVersionInfoSizeA
    0000 GetFileVersionInfoA
    0012 VerQueryValueA
Phase 6 passed

ScanBinary - 特定バイナリを探す
  "%06 WINMM.dll"を探します
  Binary: 57 49 4E 4D 4D 2E 64 6C 6C
  ファイル上の開始位置: $00000000
  ファイル上の終了位置: $004167FF
  検索範囲 $00000000〜$004167FF (のこり4286464Bytes)
  *** Find $0039F050
  検索範囲 $0039F051〜$004167FF (のこり489391Bytes)
ScanBinary passed

ScanBinary - 特定バイナリを探す
  "%07 TextOutの処理を埋め込む位置"を探します
  Binary: 8B 45 18 8B 48 0C 89 4D D0 8B 55 18
  ファイル上の開始位置: $00001000
  ファイル上の終了位置: $0030AFFF
  検索範囲 $00001000〜$0030AFFF (のこり3186688Bytes)
  *** Find $00026856
  検索範囲 $00026857〜$0030AFFF (のこり3033001Bytes)
ScanBinary passed

ScanBinary - 特定バイナリを探す
  "%08 TextOutの処理が終了したらジャンプさせる位置"を探します
  Binary: 8B 55 18 8B 02 8B 4D 18 8B 50 0C FF D2 8B 45 0C 8B E5 5D C2 18 00
  ファイル上の開始位置: $00026856
  ファイル上の終了位置: $0030AFFF
  検索範囲 $00026856〜$0030AFFF (のこり3033002Bytes)
  *** Find $00027065
  検索範囲 $00027066〜$0030AFFF (のこり3030938Bytes)
ScanBinary passed

ScanBinary - 特定バイナリを探す
  "%09 文字列幅の処理を埋め込む位置"を探します
  Binary: C7 45 FC 00 00 00 00 8B 45 08 8A 08 88 4D
  ファイル上の開始位置: $00001000
  ファイル上の終了位置: $0030AFFF
  検索範囲 $00001000〜$0030AFFF (のこり3186688Bytes)
  *** Find $000271A6
  検索範囲 $000271A7〜$0030AFFF (のこり3030617Bytes)
ScanBinary passed

ScanBinary - 特定バイナリを探す
  "%10 文字列幅の処理が終了したらジャンプさせる位置(の2バイト前)"を探します
  Binary: 8B 45 FC 8B E5 5D C2 04 00
  ファイル上の開始位置: $000271A6
  ファイル上の終了位置: $0030AFFF
  検索範囲 $000271A6〜$0030AFFF (のこり3030618Bytes)
  *** Find $00027348
  検索範囲 $00027349〜$0030AFFF (のこり3030199Bytes)
  *** Find $000AE56C
  検索範囲 $000AE56D〜$0030AFFF (のこり2476691Bytes)
  *** Find $000B0BE3
  検索範囲 $000B0BE4〜$0030AFFF (のこり2466844Bytes)
  *** Find $000B1BDC
  検索範囲 $000B1BDD〜$0030AFFF (のこり2462755Bytes)
  *** Find $000B1C1C
  検索範囲 $000B1C1D〜$0030AFFF (のこり2462691Bytes)
  *** Find $000B1C5C
  検索範囲 $000B1C5D〜$0030AFFF (のこり2462627Bytes)
  *** Find $000B1C9C
  検索範囲 $000B1C9D〜$0030AFFF (のこり2462563Bytes)
  *** Find $000B3A9C
  検索範囲 $000B3A9D〜$0030AFFF (のこり2454883Bytes)
  *** Find $000B3DFC
  検索範囲 $000B3DFD〜$0030AFFF (のこり2454019Bytes)
  *** Find $000B40FC
  検索範囲 $000B40FD〜$0030AFFF (のこり2453251Bytes)
  *** Find $000FCC38
  検索範囲 $000FCC39〜$0030AFFF (のこり2155463Bytes)
  *** Find $000FCC7D
  検索範囲 $000FCC7E〜$0030AFFF (のこり2155394Bytes)
  *** Find $000FCCD2
  検索範囲 $000FCCD3〜$0030AFFF (のこり2155309Bytes)
  *** Find $000FCD08
  検索範囲 $000FCD09〜$0030AFFF (のこり2155255Bytes)
  *** Find $000FCF93
  検索範囲 $000FCF94〜$0030AFFF (のこり2154604Bytes)
  *** Find $001002C3
  検索範囲 $001002C4〜$0030AFFF (のこり2141500Bytes)
  *** Find $00146A13
  検索範囲 $00146A14〜$0030AFFF (のこり1852908Bytes)
ScanBinary passed

ScanBinary - 特定バイナリを探す
  "%XX Latin文字を大文字化している処理の位置"を探します。
  Binary: 75 1A 8B C7 8D 50 01
  ファイル上の開始位置: $00001000
  ファイル上の終了位置: $0030AFFF
  検索範囲 $00001000〜$0030AFFF (のこり3186688Bytes)
  *** Find $0001DAC8
  検索範囲 $0001DAC9〜$0030AFFF (のこり3069239Bytes)
ScanBinary passed

PatchBinary - パッチをあてる
  proc TextOut書き換え
  $00026856 8B->83
  $00026857 45->3D
  $00026858 0C488B18->02E53FF8 (%02 $02E53FF8 varTextOutDC0Address)
  $0002685C 89->00
  $0002685D 4D->75
  $0002685E D0->29
  $0002685F 8B->68
  $00026860 428B1855->0079FC50 (%06 $0079FC50 WINMM.dll)
  $00026864 18->FF
  $00026865 89->15
  $00026866 458BA445->0070B184 (%04 $0070B184 GetModuleHandleA)
  $0002686A A4->85
  $0002686B 99->C0
  $0002686C F7->75
  $0002686D 7D->01
  $0002686E D0->F4
  $0002686F 89->68
  $00026870 4D8BD445->007A07E0 (%00 $007A07E0 TextOutDC0)
  $00026874 10->50
  $00026875 0F->FF
  $00026876 AF->15
  $00026877 AF0FD44D->0070B0A8 (%05 $0070B0A8 GetProcAddress)
  $0002687B 4D->85
  $0002687C D0->C0
  $0002687D 89->75
  $0002687E 4D->01
  $0002687F E4->F4
  $00026880 8B->A3
  $00026881 028B1855->02E53FF8 (%02 $02E53FF8 varTextOutDC0Address)
  $00026885 8B->8B
  $00026886 4D->4D
  $00026887 18->94
  $00026888 8B->8B
  $00026889 50->51
  $0002688A 08->0C
  $0002688B FF->81
  $0002688C D2->7A
  $0002688D 03->19
  $0002688E 45->62
  $0002688F E4->6F
  $00026890 89->6C
  $00026891 45->64
  $00026892 FC->B8
  $00026893 8B->01
  $00026894 45->00
  $00026895 0C->00
  $00026896 89->00
  $00026897 45->74
  $00026898 EC->02
  $00026899 0F->33
  $0002689A B7->C0
  $0002689B 4D->8B
  $0002689C 1C->D0
  $0002689D 89->80
  $0002689E 4D->B9
  $0002689F CC->14
  $000268A0 8B->04
  $000268A1 55->00
  $000268A2 08->00
  $000268A3 8A->00
  $000268A4 02->74
  $000268A5 88->03
  $000268A6 45->83
  $000268A7 CB->C8
  $000268A8 0F->02
  $000268A9 B6->50
  $000268AA 4D->FF
  $000268AB CB->75
  $000268AC 8B->1C
  $000268AD 55->8B
  $000268AE 08->41
  $000268AF 83->10
  $000268B0 C2->48
  $000268B1 01->48
  $000268B2 89->48
  $000268B3 55->2B
  $000268B4 08->C2
  $000268B5 85->8B
  $000268B6 C9->51
  $000268B7 0F->0C
  $000268B8 84->81
  $000268B9 A8->7A
  $000268BA 07->0A
  $000268BB 00->61
  $000268BC 00->72
  $000268BD 0F->69
  $000268BE B7->61
  $000268BF 45->75
  $000268C0 1C->01
  $000268C1 89->48
  $000268C2 45->50
  $000268C3 C4->8B
  $000268C4 0F->55
  $000268C5 B6->18
  $000268C6 4D->FF
  $000268C7 CB->72
  $000268C8 8B->2C
  $000268C9 55->FF
  $000268CA 94->75
  $000268CB 8B->08
  $000268CC 42->FF
  $000268CD 08->75
  $000268CE 83->10
  $000268CF 3C->FF
  $000268D0 88->75
  $000268D1 00->0C
  $000268D2 0F->FF
  $000268D3 84->15
  $000268D4 00000788->02E53FF8 (%02 $02E53FF8 varTextOutDC0Address)
  $000268D8 0F->E9
  $000268D9 89CB4DBE->00000788 (%08 $00027065 TextOutEnd)
  $000268DD 4D->90
  $000268DE 90->90

  proc GetTextWidth書き換え
  $000271A6 C7->83
  $000271A7 45->3D
  $000271A8 000000FC->02E53FFC (%03 $02E53FFC varGetTextWidthAddress)
  $000271AC 00->00
  $000271AD 8B->75
  $000271AE 45->29
  $000271AF 08->68
  $000271B0 4D88088A->0079FC50 (%06 $0079FC50 WINMM.dll)
  $000271B4 FB->FF
  $000271B5 0F->15
  $000271B6 8BFB55B6->0070B184 (%04 $0070B184 GetModuleHandleA)
  $000271BA 45->85
  $000271BB 08->C0
  $000271BC 83->75
  $000271BD C0->01
  $000271BE 01->F4
  $000271BF 89->68
  $000271C0 D2850845->007A07EB (%01 $007A07EB GetTextWidth)
  $000271C4 0F->50
  $000271C5 84->FF
  $000271C6 7E->15
  $000271C7 0F000001->0070B0A8 (%05 $0070B0A8 GetProcAddress)
  $000271CB BE->85
  $000271CC 4D->C0
  $000271CD FB->75
  $000271CE 89->01
  $000271CF 4D->F4
  $000271D0 E4->A3
  $000271D1 83E4558B->02E53FFC (%03 $02E53FFC varGetTextWidthAddress)
  $000271D5 C2->8B
  $000271D6 59->4D
  $000271D7 89->E8
  $000271D8 55->8B
  $000271D9 E4->51
  $000271DA 81->0C
  $000271DB 7D->81
  $000271DC E4->7A
  $000271DD F9->19
  $000271DE 00->62
  $000271DF 00->6F
  $000271E0 00->6C
  $000271E1 0F->64
  $000271E2 87->B8
  $000271E3 24->01
  $000271E4 01->00
  $000271E5 00->00
  $000271E6 00->00
  $000271E7 8B->74
  $000271E8 45->02
  $000271E9 E4->33
  $000271EA 0F->C0
  $000271EB B6->8B
  $000271EC 88->D0
  $000271ED 6C->80
  $000271EE 7F->B9
  $000271EF 42->14
  $000271F0 00->04
  $000271F1 FF->00
  $000271F2 24->00
  $000271F3 8D->00
  $000271F4 54->74
  $000271F5 7F->03
  $000271F6 42->83
  $000271F7 00->C8
  $000271F8 8B->02
  $000271F9 55->50
  $000271FA 08->8B
  $000271FB 0F->41
  $000271FC BE->10
  $000271FD 02->48
  $000271FE 83->48
  $000271FF F8->48
  $00027200 59->2B
  $00027201 74->C2
  $00027202 4D->8B
  $00027203 8B->51
  $00027204 4D->0C
  $00027205 08->81
  $00027206 0F->7A
  $00027207 BE->0A
  $00027208 11->61
  $00027209 83->72
  $0002720A FA->69
  $0002720B 57->61
  $0002720C 74->75
  $0002720D 42->01
  $0002720E 8B->48
  $0002720F 45->50
  $00027210 08->FF
  $00027211 0F->75
  $00027212 BE->08
  $00027213 08->FF
  $00027214 83->15
  $00027215 37745AF9->02E53FFC (%03 $02E53FFC varGetTextWidthAddress)
  $00027219 8B->E9
  $0002721A BE0F0855->0000012D (%10 $00027348 GetTextWidthEnd)
  $0002721E 02->90
  $0002721F 83->90
  $00027220 F8->90
  $00027221 47->90

  WINMM.dll書き換え
  $0039F050

  TextOutDC0埋め込み
  $0039FBE0

  GetTextWidth埋め込み
  $0039FBEB

  proc LatinToUpper書き換え
  $0001DAC8 75->EB
  $0001DAC9 1A->17

PatchBinary passed
