» TeamX (Архив Форума)«


Форум TeamX » За кружкой ротгута » дизассемблирование fallout2.exe

Переход по темам
<< Пред. След. >>
Единственная страница этой темы

 
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Я тут попробывал дизассемблировать fallout2.exe я вообще в коде ниче не понял но вскрылись
интересные данные

Начало файла

Disassembly of File: E:\Программирование\!Assembler\Win32 Disassembler 8.93\W32DASM\fallout2.exe
Code Offset = 00000400, Code Size = 000EE200
Data Offset = 000EE600, Data Size = 00020E00

Number of Objects = 0006 (dec), Imagebase = 00400000h

  Object01: BEGTEXT  RVA: 00010000 Offset: 00000400 Size: 000EE200 Flags: 60000020
  Object02: DGROUP   RVA: 00100000 Offset: 000EE600 Size: 00020E00 Flags: C0000040
  Object03: .bss     RVA: 00130000 Offset: 00000000 Size: 00184200 Flags: C0000080
  Object04: .idata   RVA: 002C0000 Offset: 0010F400 Size: 00000C00 Flags: C0000040
  Object05: .reloc   RVA: 002D0000 Offset: 00110000 Size: 0000FE00 Flags: 42000040
  Object06: .rsrc    RVA: 002E0000 Offset: 0011FE00 Size: 00002A00 Flags: 40000040


+++++++++++++++++++ MENU INFORMATION ++++++++++++++++++

       There Are No Menu Resources in This Application

+++++++++++++++++ DIALOG INFORMATION ++++++++++++++++++

       There Are No Dialog Resources in This Application

+++++++++++++++++++ IMPORTED FUNCTIONS ++++++++++++++++++
Number of Imported Modules =    6 (decimal)

  Import Module 001: GDI32.dll
  Import Module 002: USER32.dll
  Import Module 003: WINMM.dll
  Import Module 004: KERNEL32.dll
  Import Module 005: USER32.DLL
  Import Module 006: KERNEL32.DLL

+++++++++++++++++++ IMPORT MODULE DETAILS +++++++++++++++

  Import Module 001: GDI32.dll

Addr:002C0460 hint(0001) Name: GetStockObject

  Import Module 002: USER32.dll

Addr:002C0472 hint(0001) Name: CallNextHookEx
Addr:002C0484 hint(0002) Name: CreateWindowExA
Addr:002C0496 hint(0003) Name: DefWindowProcA
Addr:002C04A8 hint(0004) Name: DispatchMessageA
Addr:002C04BC hint(0005) Name: GetAsyncKeyState
Addr:002C04D0 hint(0006) Name: GetKeyState
Addr:002C04DE hint(0007) Name: GetMessageA
Addr:002C04EC hint(0008) Name: GetSystemMetrics
Addr:002C0500 hint(0009) Name: GetUpdateRect
Addr:002C0510 hint(000A) Name: LoadCursorA
Addr:002C051E hint(000B) Name: LoadIconA
Addr:002C052A hint(000C) Name: MessageBoxA
Addr:002C0538 hint(000D) Name: PeekMessageA
Addr:002C0548 hint(000E) Name: RegisterClassA
Addr:002C055A hint(000F) Name: SetCursor
Addr:002C0566 hint(0010) Name: SetFocus
Addr:002C0572 hint(0011) Name: SetWindowTextA
Addr:002C0584 hint(0012) Name: SetWindowsHookExA
Addr:002C0598 hint(0013) Name: ShowCursor
Addr:002C05A6 hint(0014) Name: TranslateMessage
Addr:002C05BA hint(0015) Name: UnhookWindowsHookEx
Addr:002C05D0 hint(0016) Name: UpdateWindow

  Import Module 003: WINMM.dll

Addr:002C05E0 hint(0001) Name: timeGetTime
Addr:002C05EE hint(0002) Name: timeKillEvent
Addr:002C05FE hint(0003) Name: timeSetEvent

  Import Module 004: KERNEL32.dll

Addr:002C060E hint(0001) Name: CloseHandle
Addr:002C061C hint(0002) Name: CopyFileA
Addr:002C0628 hint(0003) Name: CreateMutexA
Addr:002C0638 hint(0004) Name: CreateProcessA
Addr:002C064A hint(0005) Name: FreeLibrary
Addr:002C0658 hint(0006) Name: GetCurrentThreadId
Addr:002C066E hint(0007) Name: GetDiskFreeSpaceA
Addr:002C0682 hint(0008) Name: GetDriveTypeA
Addr:002C0692 hint(0009) Name: GetFileAttributesA
Addr:002C06A8 hint(000A) Name: GetLastError
Addr:002C06B8 hint(000B) Name: GetModuleFileNameA
Addr:002C06CE hint(000C) Name: GetProcAddress
Addr:002C06E0 hint(000D) Name: GetTickCount
Addr:002C06F0 hint(000E) Name: GetVersionExA
Addr:002C0700 hint(000F) Name: GetVolumeInformationA
Addr:002C0718 hint(0010) Name: LoadLibraryA
Addr:002C0728 hint(0011) Name: SetErrorMode
Addr:002C0738 hint(0012) Name: SetFileAttributesA
Addr:002C074E hint(0013) Name: VirtualProtect
Addr:002C0760 hint(0014) Name: WaitForSingleObject
Addr:002C0776 hint(0015) Name: lstrcatA
Addr:002C0782 hint(0016) Name: lstrcmpiA

  Import Module 005: USER32.DLL

Addr:002C078E hint(0001) Name: GetActiveWindow
Addr:002C07A0 hint(0002) Name: wsprintfA

  Import Module 006: KERNEL32.DLL

Addr:002C07AC hint(0001) Name: CloseHandle
Addr:002C07BA hint(0002) Name: CreateDirectoryA
Addr:002C07CE hint(0003) Name: CreateEventA
Addr:002C07DE hint(0004) Name: CreateFileA
Addr:002C07EC hint(0005) Name: CreateMutexA
Addr:002C07FC hint(0006) Name: CreateThread
Addr:002C080C hint(0007) Name: DeleteFileA
Addr:002C081A hint(0008) Name: DosDateTimeToFileTime
Addr:002C0832 hint(0009) Name: ExitProcess
Addr:002C0840 hint(000A) Name: ExitThread
Addr:002C084E hint(000B) Name: FileTimeToDosDateTime
Addr:002C0866 hint(000C) Name: FileTimeToLocalFileTime
Addr:002C0880 hint(000D) Name: FindClose
Addr:002C088C hint(000E) Name: FindFirstFileA
Addr:002C089E hint(000F) Name: FindNextFileA
Addr:002C08AE hint(0010) Name: GetCPInfo
Addr:002C08BA hint(0011) Name: GetCommandLineA
Addr:002C08CC hint(0012) Name: GetConsoleMode
Addr:002C08DE hint(0013) Name: GetCurrentDirectoryA
Addr:002C08F6 hint(0014) Name: GetCurrentProcessId
Addr:002C090C hint(0015) Name: GetCurrentThreadId
Addr:002C0922 hint(0016) Name: GetCurrentThread
Addr:002C0936 hint(0017) Name: GetDiskFreeSpaceA
Addr:002C094A hint(0018) Name: GetEnvironmentStrings
Addr:002C0962 hint(0019) Name: GetFileAttributesA
Addr:002C0978 hint(001A) Name: GetFileType
Addr:002C0986 hint(001B) Name: GetLastError
Addr:002C0996 hint(001C) Name: GetLocalTime
Addr:002C09A6 hint(001D) Name: GetModuleFileNameA
Addr:002C09BC hint(001E) Name: GetModuleHandleA
Addr:002C09D0 hint(001F) Name: GetProcAddress
Addr:002C09E2 hint(0020) Name: GetStdHandle
Addr:002C09F2 hint(0021) Name: GetTickCount
Addr:002C0A02 hint(0022) Name: GetTimeZoneInformation
Addr:002C0A1C hint(0023) Name: GetVersion
Addr:002C0A2A hint(0024) Name: LoadLibraryA
Addr:002C0A3A hint(0025) Name: LocalFileTimeToFileTime
Addr:002C0A54 hint(0026) Name: MoveFileA
Addr:002C0A60 hint(0027) Name: ReadConsoleInputA
Addr:002C0A74 hint(0028) Name: ReadFile
Addr:002C0A80 hint(0029) Name: ReleaseMutex
Addr:002C0A90 hint(002A) Name: RemoveDirectoryA
Addr:002C0AA4 hint(002B) Name: RtlUnwind
Addr:002C0AB0 hint(002C) Name: SetConsoleCtrlHandler
Addr:002C0AC8 hint(002D) Name: SetConsoleMode
Addr:002C0ADA hint(002E) Name: SetCurrentDirectoryA
Addr:002C0AF2 hint(002F) Name: SetEvent
Addr:002C0AFE hint(0030) Name: SetFilePointer
Addr:002C0B10 hint(0031) Name: SetStdHandle
Addr:002C0B20 hint(0032) Name: TlsAlloc
Addr:002C0B2C hint(0033) Name: TlsFree
Addr:002C0B36 hint(0034) Name: TlsGetValue
Addr:002C0B44 hint(0035) Name: TlsSetValue
Addr:002C0B52 hint(0036) Name: VirtualAlloc
Addr:002C0B62 hint(0037) Name: VirtualFree
Addr:002C0B70 hint(0038) Name: WaitForSingleObject
Addr:002C0B86 hint(0039) Name: WriteConsoleA
Addr:002C0B96 hint(003A) Name: WriteFile

+++++++++++++++++++ EXPORTED FUNCTIONS ++++++++++++++++++
Number of Exported Functions = 0000 (decimal)




+++++++++++++++++++ ASSEMBLY CODE LISTING ++++++++++++++++++
//********************** Start of Code in Object BEGTEXT **************
Program Entry Point = 004E4480 (E:\Программирование\!Assembler\Win32 Disassembler 8.93\W32DASM\fallout2.exe File Offset:001D2A80)


Потом я стал нажимать разные кнопки в программе и вылезло окошко, и там много всего я как
понял что есть в движке как бы ссылки

Вот смотрите

Выбрал "has_skill" а это скриптовая функция


* Possible StringData Ref from Data Obj ->"has_skill"
                                 |
:00454607 BAE44D5000              mov edx, 00504DE4
:0045460C 89C8                    mov eax, ecx
:0045460E E8BDF9FFFF              call 00453FD0


там вооб ще всего полно

да еще и с коментариями

Я как понял это обработка музыки или что то в этом духе

* Possible StringData Ref from Data Obj ->"master_volume"
                                 |
:00492C15 BB64C25000              mov ebx, 0050C264

* Possible StringData Ref from Data Obj ->"sound"
                                 |
:00492C1A BA74C25000              mov edx, 0050C274
:00492C1F B850E95800              mov eax, 0058E950
:00492C24 E83394F9FF              call 0042C05C
:00492C29 B990396600              mov ecx, 00663990

* Possible StringData Ref from Data Obj ->"music_volume"
                                 |
:00492C2E BB7CC25000              mov ebx, 0050C27C

* Possible StringData Ref from Data Obj ->"sound"
                                 |
:00492C33 BA74C25000              mov edx, 0050C274
:00492C38 B850E95800              mov eax, 0058E950
:00492C3D E81A94F9FF              call 0042C05C
:00492C42 B970396600              mov ecx, 00663970

* Possible StringData Ref from Data Obj ->"sndfx_volume"
                                 |
:00492C47 BB8CC25000              mov ebx, 0050C28C

* Possible StringData Ref from Data Obj ->"sound"
                                 |
:00492C4C BA74C25000              mov edx, 0050C274
:00492C51 B850E95800              mov eax, 0058E950
:00492C56 E80194F9FF              call 0042C05C
:00492C5B B97C396600              mov ecx, 0066397C

* Possible StringData Ref from Data Obj ->"speech_volume"
                                 |
:00492C60 BB9CC25000              mov ebx, 0050C29C

* Possible StringData Ref from Data Obj ->"sound"
                                 |
:00492C65 BA74C25000              mov edx, 0050C274
:00492C6A B850E95800              mov eax, 0058E950
:00492C6F E8E893F9FF              call 0042C05C
:00492C74 B9D0386600              mov ecx, 006638D0

* Possible StringData Ref from Data Obj ->"brightness"
                                 |
:00492C79 BB50C15000              mov ebx, 0050C150

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492C7E BA5CC15000              mov edx, 0050C15C
:00492C83 B850E95800              mov eax, 0058E950
:00492C88 E88B9AF9FF              call 0042C718
:00492C8D B9E8386600              mov ecx, 006638E8

* Possible StringData Ref from Data Obj ->"mouse_sensitivity"
                                 |
:00492C92 BBACC25000              mov ebx, 0050C2AC

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492C97 BA5CC15000              mov edx, 0050C15C
:00492C9C B850E95800              mov eax, 0058E950
:00492CA1 E8729AF9FF              call 0042C718
:00492CA6 E84D050000              call 004931F8
:00492CAB 5A                      pop edx
:00492CAC 59                      pop ecx
:00492CAD 5B                      pop ebx
:00492CAE C3                      ret


:00492CAF 90                      nop

* Referenced by a CALL at Addresses:
|:00492883   , :004935E7   , :004935FA  
|
:00492CB0 53                      push ebx
:00492CB1 51                      push ecx
:00492CB2 52                      push edx
:00492CB3 56                      push esi
:00492CB4 57                      push edi
:00492CB5 55                      push ebp
:00492CB6 89E5                    mov ebp, esp
:00492CB8 83EC08                  sub esp, 00000008
:00492CBB 83E4F8                  and esp, FFFFFFF8
:00492CBE 89C6                    mov esi, eax
:00492CC0 BB88C15000              mov ebx, 0050C188

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492CC5 BA5CC15000              mov edx, 0050C15C
:00492CCA B850E95800              mov eax, 0058E950
:00492CCF 8B0DBC396600            mov ecx, dword ptr [006639BC]
:00492CD5 E88694F9FF              call 0042C160

* Possible StringData Ref from Data Obj ->"combat_difficulty"
                                 |
:00492CDA BB98C15000              mov ebx, 0050C198

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492CDF BA5CC15000              mov edx, 0050C15C
:00492CE4 B850E95800              mov eax, 0058E950
:00492CE9 8B0DB4396600            mov ecx, dword ptr [006639B4]
:00492CEF E86C94F9FF              call 0042C160

* Possible StringData Ref from Data Obj ->"violence_level"
                                 |
:00492CF4 BBACC15000              mov ebx, 0050C1AC

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492CF9 BA5CC15000              mov edx, 0050C15C
:00492CFE B850E95800              mov eax, 0058E950
:00492D03 8B0DB8396600            mov ecx, dword ptr [006639B8]
:00492D09 E85294F9FF              call 0042C160

* Possible StringData Ref from Data Obj ->"target_highlight"
                                 |
:00492D0E BBBCC15000              mov ebx, 0050C1BC

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492D13 BA5CC15000              mov edx, 0050C15C
:00492D18 B850E95800              mov eax, 0058E950
:00492D1D 8B0DB0396600            mov ecx, dword ptr [006639B0]
:00492D23 E83894F9FF              call 0042C160

* Possible StringData Ref from Data Obj ->"combat_messages"
                                 |
:00492D28 BBD0C15000              mov ebx, 0050C1D0

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492D2D BA5CC15000              mov edx, 0050C15C
:00492D32 B850E95800              mov eax, 0058E950
:00492D37 8B0DAC396600            mov ecx, dword ptr [006639AC]
:00492D3D E81E94F9FF              call 0042C160

* Possible StringData Ref from Data Obj ->"combat_looks"
                                 |
:00492D42 BBE0C15000              mov ebx, 0050C1E0

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492D47 BA5CC15000              mov edx, 0050C15C
:00492D4C B850E95800              mov eax, 0058E950
:00492D51 8B0DC0396600            mov ecx, dword ptr [006639C0]
:00492D57 E80494F9FF              call 0042C160

* Possible StringData Ref from Data Obj ->"combat_taunts"
                                 |
:00492D5C BBF0C15000              mov ebx, 0050C1F0

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492D61 BA5CC15000              mov edx, 0050C15C
:00492D66 B850E95800              mov eax, 0058E950
:00492D6B 8B0D88396600            mov ecx, dword ptr [00663988]
:00492D71 E8EA93F9FF              call 0042C160

* Possible StringData Ref from Data Obj ->"language_filter"
                                 |
:00492D76 BB00C25000              mov ebx, 0050C200

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492D7B BA5CC15000              mov edx, 0050C15C
:00492D80 B850E95800              mov eax, 0058E950
:00492D85 8B0D78396600            mov ecx, dword ptr [00663978]
:00492D8B E8D093F9FF              call 0042C160

* Possible StringData Ref from Data Obj ->"running"
                                 |
:00492D90 BB10C25000              mov ebx, 0050C210

* Possible StringData Ref from Data Obj ->"preferences"
                                 |
:00492D95 BA5CC15000              mov edx, 0050C15C
:00492D9A B850E95800              mov eax, 0058E950
:00492D9F 8B0D98396600            mov ecx, dword ptr [00663998]
:00492DA5 E8B693F9FF              call 0042C160


Это вообще нужно или все уже декомпилировали и получали такой код?

Вот прога http://jordan631.narod.ru/W32DASM.rar


Отправлено: 23:23 - 6 Марта, 2008
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Без обид, но всё это как бы выразиться... stuff.

Цитата:
Я как понял это обработка музыки или что то в этом духе


Никакая это не обработка (это не функции обработки). Это всего навсего строки и адреса их использования в движке, привязка, помещение указателей на строки в регистры для дальнейшего использования и т.д. и т.п.

Не знаю как кому, а для меня это бесполезная вещь (к тому же очевидная).

P.S. Если уж так нужно - могу дать смещения нужных функций (только говори конкретно каких, их много) в памяти и в exe'шнике.
Да и вообще, так с наскока асм не осилить. Ты ведь даже основополагающих вещей пока не знаешь. Зря ты так за движёк сразу схватился.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 0:15 - 7 Марта, 2008
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Ray

Цитата:
Без обид, но всё это как бы выразиться... stuff.


Я как понял в данном случае stuff переводится как чушь. Так бы и писал, хоть понять можно, понабрались словечек(уходит хлопая дверью). Без обид.

Цитата:
Да и вообще, так с наскока асм не осилить. Ты ведь даже основополагающих вещей пока не знаешь. Зря ты так за движёк сразу схватился.


Асм я вообще не понял, читал мучил, но в голове ничего не задерживается, не мое это, не математический склад ума так сказать. Меня просто любопытство замучило ну и попробывал, ну нет так нет.

Цитата:
P.S. Если уж так нужно - могу дать смещения нужных функций (только говори конкретно каких, их много) в памяти и в exe'шнике.


Жди список

Отправлено: 0:32 - 7 Марта, 2008 | ИСПРАВЛЕНО: Jordan 63 - 0:38 - 7 Марта, 2008
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Цитата:
Я как понял в данном случае stuff переводится как чушь


Нет. Не так. Я по этому и подобрал такое слово, т.к. не нашёл аналога в русском Это нечто вроде бесполезного набора вещей. В фолле есть stuff (фаргус перевёл как мусор, хотя это в корне неверно там набор различных деталей, которые вроде как и некуда приминить, да и не зачем ) Надеюсь так понятнее Если прямолинейно перевести - тогда "хлам"


Просто сами по себе эти данные бесполезны. Ну не будешь ты их так использовать, вот и всё
А данные... Ну допустим человеку разбирающемуся в ассемблере это много чего скажет, но фишка в том что это не секрет. А человеку далёкому от всего этого пост должен показаться бредом. Вот поэтому то и stuff

Цитата:
Жди список


Только чур без фанатизма.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 1:02 - 7 Марта, 2008 | ИСПРАВЛЕНО: Ray - 0:05 - 7 Марта, 2008
Fakels
Пользователь

Регистрация: Авг. 2005

Всего: 10 сообщений

Да ассеблер штука страшная и сложная, сам лет 15 назад, как-то изучал все эти комманды ассемблера тогда еще у мена был легендарный zx-spectrum, но так и не написал ни одной програмки на ассемблере, перешел на basic, вот так и зациклился на бейсике до сих пор.

Отправлено: 22:03 - 7 Марта, 2008
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Fakels, не надо отвечать в тему просто ради того, чтобы ответить. Это называется флуд. А флуд у нас запрещён.

Отправлено: 10:18 - 8 Марта, 2008
 

Переход по темам
<< Пред. След. >>
Единственная страница этой темы


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com