|
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
|
|
|
|