Патчер для exe

Тема в разделе "WASM.BEGINNERS", создана пользователем Hacker, 4 сен 2025.

  1. Hacker

    Hacker Member

    Публикаций:
    0
    Регистрация:
    9 авг 2018
    Сообщения:
    182
    Помогите с кодом, может у кого есть пример. Нужен патчер для exe, с музыкой, задача просто поменять иконку(и) в exe файле
    --- Сообщение объединено, 4 сен 2025 ---
    Это вообще возможно поменять ресурсы в бинаре?
    --- Сообщение объединено, 4 сен 2025 ---
    ResHacker - только просматривает? Но желательно бы отдельной программкой всё это оформить
     
  2. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    610
    ResHacker
    может любе голубое

    upload_2025-9-4_8-51-35.png
    --- Сообщение объединено, 4 сен 2025 ---
    ResHacker не поможет ежели у вас спец-кейс (иконки впечатанно как лента байтов а не как ресурс - тогда ой)
     
    Research нравится это.
  3. who_know777

    who_know777 Member

    Публикаций:
    2
    Регистрация:
    29 мар 2021
    Сообщения:
    120
    Адрес:
            
    Природа не стремится к красоте или уродству, добру или злу. Она просто существует по своим законам. Грандиозные события (рождение звезд, взрывы туманностей) происходят независимо от того, есть ли кто-то, кто их наблюдает. И даже редактирование иконки в ResHacker. В этом есть глубокий космический пессимизм.
     
  4. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    321
    Гибель звезды - событие чудовищного масштаба, высвобождающее энергию, которую мы даже не можем вообразить. Но на протяжении миллиардов лет эти космические драмы разыгрывались в абсолютно пустом зале. Вселенная существует не для нас. Мы не были целью или венцом творения.
     
  5. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    610
    Попыткой решения парадокса является уравнение Дрейка, которое оценивает возможное количество внеземных цивилизаций, способных вступить в контакт с человеческой. При некоторых значениях неизвестных параметров уравнение даёт высокую оценку шансам на такую встречу
     
  6. who_know777

    who_know777 Member

    Публикаций:
    2
    Регистрация:
    29 мар 2021
    Сообщения:
    120
    Адрес:
            
     
  7. Dmitry_Milk

    Dmitry_Milk Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    559
    Иконки, курсоры и маленькие bmp-шки для кнопок обычно хранятся в ресурсах в несжатом виде, то есть, при одних и тех же размерах и цветовом разрешении занимают одно и то же количество байтов. То есть, если не менять размеры и цветовое разрешение - можно просто прямо поверх переписать байты содержимого прямо руками.
     
  8. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.350
  9. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    647
    Адрес:
    Russia
    Вспомнилось, как Винрар от напоминалки "купи меня" отучал путем переименования ресурса reminder )
    189546_original.png

    Пользуясь случаем, спрошу, если кто-то работал с TinyC Compiler, как там нормально можно подключить WinMM.dll к EXE?
    Сейчас делаю через Loadlibrary, но это такое себе.
     
  10. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    321
    _edge, после этого люди перестанут покупать winrar
     
  11. alex_dz

    alex_dz Active Member

    Публикаций:
    0
    Регистрация:
    26 июл 2006
    Сообщения:
    610
    зачем?

    давно есть генерила
    делает ключ без ввсякой патченинки...
    --- Сообщение объединено, 4 сен 2025 ---
    demo.c:2: error: include file 'mmsystem.h' not found

    хедер есть тут http://download.savannah.gnu.org/releases/tinycc/

    upload_2025-9-4_19-30-35.png
    --- Сообщение объединено, 4 сен 2025 ---
    >tcc demo.c -lwinmm
     
    _edge нравится это.
  12. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    647
    Адрес:
    Russia
    С Винраром просто PoC был.
    Спасибо! Про хидеры знал, но через -lwinmm не догадался или неполучалось, хотя пробовал всякое. Оно меня смутило def и lib файлами. Хотя -luser32 работало (потому что эти файлы уже были сгенерированы для этой dll?).
     
    Последнее редактирование: 4 сен 2025
  13. miilalex

    miilalex Member

    Публикаций:
    0
    Регистрация:
    8 сен 2024
    Сообщения:
    42
    скорее всего, .def файлы заменяют автору этого си библиотеки импорта

    я бы из того, что вывалил tdump про внутренний мир winmm.dll оставил только имена (в предположении, что они следуют в порядке возрастания индекса) и, возможно, этого будет достаточно (плюс хидер для типизации вызовов со стороны исходника)

    но вообще чуть позорненько выглядит компилятор, который вот так цепляет библиотеки
    трушный Борланд не сказать, чтобы далеко ушел вперед, но хотя бы имеет в поставке implib.exe который из любой dll делает .lib файл OMF стандарта - хотя технически библиотека импорта несет тот же смысл - но кучка библиотек выглядит единообразно и в едином бинарном формате

    в сторону замечу, что tdump из девяностых хотя и умеет парсить PE файлы, от winmm.dll из семерки 64 просто падает и, похоже, неверно парсит секции

    Turbo Dump Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation
    Display of File WINMM.DLL
    [поскипано]
    ******************************************************************************
    Section: Exports
    Flags: 00000000
    Time Stamp: 41107EB5 : Wed Aug 04 09:14:13 2004
    Major Version: 0000
    Minor Version: 0000
    Exports from WINMM.dll
    209 exported name(s), 210 export addresse(s). Ordinal base is 2.
    Not sorted
    RVA Ord. Hint Name
    -------- ---- ---- ----
    0001A8F7 0000
    00003894 2 0001 CloseDriver
    0000E382 3 0002 DefDriverProc
    000054A9 4 0003 DriverCallback
    00002DE5 5 0004 DrvGetModuleHandle
    00002DE5 6 0005 GetDriverModuleHandle
    0001B7B4 7 0006 MigrateAllDrivers
    0000AAA0 8 0007 MigrateSoundEvents
    00010906 9 0008 NotifyCallbackData
    00002E3E 10 0009 OpenDriver
    0001A8F7 11 000A PlaySound
    0001A8F7 12 000B PlaySoundA
    00004657 13 000C PlaySoundW
    00003128 14 000D SendDriverMessage
    00010D0C 15 000E WOW32DriverCallback
    00011183 16 000F WOW32ResolveMultiMediaHandle
    0001B571 17 0010 WOWAppExit
    0001B794 18 0011 WinmmLogoff
    0000A903 19 0012 WinmmLogon
    00011644 22 0013 aux32Message
    0000E164 23 0014 auxGetDevCapsA
    0000E0F2 24 0015 auxGetDevCapsW
    0000E0C6 25 0016 auxGetNumDevs
    0000E2AB 26 0017 auxGetVolume
    0000E04F 27 0018 auxOutMessage
    0000E2FB 28 0019 auxSetVolume
    0000D9D9 29 001A gfxAddGfx
    0000DDE1 30 001B gfxBatchChange
    0000DCB1 31 001C gfxCreateGfxFactoriesList
    0000DD49 32 001D gfxCreateZoneFactoriesList
    0000DAD9 33 001E gfxDestroyDeviceInterfaceList
    0000DBB9 34 001F gfxEnumerateGfxs
    0000DF29 20 0020 _gfxLogoff@0
    0000A92F 21 0021 _gfxLogon@4
    0000D979 35 0022 gfxModifyGfx
    0000DEBF 36 0023 gfxOpenGfx
    0000DA79 37 0024 gfxRemoveGfx
    00010F81 38 0025 joy32Message
    0000ED67 39 0026 joyConfigChanged
    0000F696 40 0027 joyGetDevCapsA
    0000F5E3 41 0028 joyGetDevCapsW
    0000E711 42 0029 joyGetNumDevs
    0000FC2D 43 002A joyGetPos
    0000F91D 44 002B joyGetPosEx
    0000FC89 45 002C joyGetThreshold
    0000EC78 46 002D joyReleaseCapture
    0000FF40 47 002E joySetCapture
    0000FD25 48 002F joySetThreshold
    000130B1 49 0030 mci32Message
    000167D9 50 0031 mciDriverNotify
    0001664F 51 0032 mciDriverYield
    000142DF 52 0033 mciExecute
    00014E32 53 0034 mciFreeCommandResource
    000159FE 54 0035 mciGetCreatorTask
    000159C7 55 0036 mciGetDeviceIDA
    000167FB 56 0037 mciGetDeviceIDFromElementIDA
    00015839 57 0038 mciGetDeviceIDFromElementIDW
    000159AA 58 0039 mciGetDeviceIDW
    000165B5 59 003A mciGetDriverData
    000136FF 60 003B mciGetErrorStringA
    00013792 61 003C mciGetErrorStringW
    00016703 62 003D mciGetYieldProc
    00014B46 63 003E mciLoadCommandResource
    0001441B 64 003F mciSendCommandA
    00013BA0 65 0040 mciSendCommandW
    0001494A 66 0041 mciSendStringA
    0001429E 67 0042 mciSendStringW
    000165FF 68 0043 mciSetDriverData
    000166AD 69 0044 mciSetYieldProc
    00012264 70 0045 mid32Message
    00019F95 71 0046 midiConnect
    00019F7A 72 0047 midiDisconnect
    00019ADE 73 0048 midiInAddBuffer
    0001993E 74 0049 midiInClose
    0001961A 75 004A midiInGetDevCapsA
    0001956A 76 004B midiInGetDevCapsW
    000197D3 77 004C midiInGetErrorTextA
    00018B71 78 004D midiInGetErrorTextW
    00019CA6 79 004E midiInGetID
    000194F1 80 004F midiInGetNumDevs
    0001951D 81 0050 midiInMessage
    00019803 82 0051 midiInOpen
    000199ED 83 0052 midiInPrepareHeader
    00019BC3 84 0053 midiInReset
    00019B47 85 0054 midiInStart
    00019B85 86 0055 midiInStop
    00019A58 87 0056 midiInUnprepareHeader
    000193B5 88 0057 midiOutCacheDrumPatches
    0001930D 89 0058 midiOutCachePatches
    00018D4E 90 0059 midiOutClose
    0001870C 91 005A midiOutGetDevCapsA
    00009FBB 92 005B midiOutGetDevCapsW
    000197D3 93 005C midiOutGetErrorTextA
    00018B71 94 005D midiOutGetErrorTextW
    00019CF3 95 005E midiOutGetID
    00007C38 96 005F midiOutGetNumDevs
    0001896A 97 0060 midiOutGetVolume
    000191F1 98 0061 midiOutLongMsg
    000092FB 99 0062 midiOutMessage
    00018BAD 100 0063 midiOutOpen
    00018DFD 101 0064 midiOutPrepareHeader
    00019292 102 0065 midiOutReset
    00018A3B 103 0066 midiOutSetVolume
    0001916A 104 0067 midiOutShortMsg
    00018FF2 105 0068 midiOutUnprepareHeader
    0001A2E3 106 0069 midiStreamClose
    00019FB0 107 006A midiStreamOpen
    0001A526 108 006B midiStreamOut
    0001A460 109 006C midiStreamPause
    0001A3E9 110 006D midiStreamPosition
    0001A375 111 006E midiStreamProperty
    0001A48F 112 006F midiStreamRestart
    0001A431 113 0070 midiStreamStop
    00009795 114 0071 mixerClose
    00010812 115 0072 mixerGetControlDetailsA
    0000A715 116 0073 mixerGetControlDetailsW
    00010487 117 0074 mixerGetDevCapsA
    0000A41F 118 0075 mixerGetDevCapsW
    0000952C 119 0076 mixerGetID
    000106E3 120 0077 mixerGetLineControlsA
    0000A2F7 121 0078 mixerGetLineControlsW
    00010624 122 0079 mixerGetLineInfoA
    0000A4FB 123 007A mixerGetLineInfoW
    00010147 124 007B mixerGetNumDevs
    0000A2C6 125 007C mixerMessage
    0000987E 126 007D mixerOpen
    00010305 127 007E mixerSetControlDetails
    00003A52 128 007F mmDrvInstall
    0001B155 129 0080 mmGetCurrentTask
    0001B0F9 130 0081 mmTaskBlock
    0001B1A0 131 0082 mmTaskCreate
    0001B135 132 0083 mmTaskSignal
    0001B7B4 133 0084 mmTaskYield
    00018036 134 0085 mmioAdvance
    000182CA 135 0086 mmioAscend
    00017FE4 136 0087 mmioClose
    000183CC 137 0088 mmioCreateChunk
    00018463 138 0089 mmioDescend
    0001765C 139 008A mmioFlush
    00017167 140 008B mmioGetInfo
    0001775B 141 008C mmioInstallIOProcA
    0001772C 142 008D mmioInstallIOProcW
    00017DF2 143 008E mmioOpenA
    00017C77 144 008F mmioOpenW
    000180FA 145 0090 mmioRead
    0001792C 146 0091 mmioRenameA
    00017860 147 0092 mmioRenameW
    000179F9 148 0093 mmioSeek
    00017301 149 0094 mmioSendMessage
    00017AB8 150 0095 mmioSetBuffer
    000171A8 151 0096 mmioSetInfo
    00017219 152 0097 mmioStringToFOURCCA
    000176CE 153 0098 mmioStringToFOURCCW
    000181CA 154 0099 mmioWrite
    0001B6EB 155 009A mmsystemGetVersion
    00012065 156 009B mod32Message
    00011729 157 009C mxd32Message
    0001A9A6 158 009D sndPlaySoundA
    0001A8B2 159 009E sndPlaySoundW
    00010E4E 160 009F tid32Message
    00006002 161 00A0 timeBeginPeriod
    00006154 162 00A1 timeEndPeriod
    00002BA5 163 00A2 timeGetDevCaps
    0001AEA3 164 00A3 timeGetSystemTime
    00004E5B 165 00A4 timeGetTime
    0001AA7D 166 00A5 timeKillEvent
    0001B0C8 167 00A6 timeSetEvent
    0001C2C9 168 00A7 waveInAddBuffer
    0001C115 169 00A8 waveInClose
    0001BEBF 170 00A9 waveInGetDevCapsA
    00009EDC 171 00AA waveInGetDevCapsW
    0001BB82 172 00AB waveInGetErrorTextA
    0001C0D9 173 00AC waveInGetErrorTextW
    0001C4E4 174 00AD waveInGetID
    000062A4 175 00AE waveInGetNumDevs
    0001C3FD 176 00AF waveInGetPosition
    00008F66 177 00B0 waveInMessage
    00009148 178 00B1 waveInOpen
    0001C1C4 179 00B2 waveInPrepareHeader
    0001C3AE 180 00B3 waveInReset
    0001C332 181 00B4 waveInStart
    0001C370 182 00B5 waveInStop
    0001C23B 183 00B6 waveInUnprepareHeader
    0001BC7A 184 00B7 waveOutBreakLoop
    00005736 185 00B8 waveOutClose
    0001B7BC 186 00B9 waveOutGetDevCapsA
    000083EA 187 00BA waveOutGetDevCapsW
    0001BB82 188 00BB waveOutGetErrorTextA
    0001C0D9 189 00BC waveOutGetErrorTextW
    0001C531 190 00BD waveOutGetID
    0000626D 191 00BE waveOutGetNumDevs
    0001BD0B 192 00BF waveOutGetPitch
    0001BD9B 193 00C0 waveOutGetPlaybackRate
    0001BCB8 194 00C1 waveOutGetPosition
    0001B9EA 195 00C2 waveOutGetVolume
    000063C7 196 00C3 waveOutMessage
    00005211 197 00C4 waveOutOpen
    0001BBAF 198 00C5 waveOutPause
    000059E9 199 00C6 waveOutPrepareHeader
    0001BC2B 200 00C7 waveOutReset
    0001BBED 201 00C8 waveOutRestart
    0001BD5C 202 00C9 waveOutSetPitch
    0001BDEC 203 00CA waveOutSetPlaybackRate
    0001BA77 204 00CB waveOutSetVolume
    000057D8 205 00CC waveOutUnprepareHeader
    00005A5A 206 00CD waveOutWrite
    00011E5F 207 00CE wid32Message
    0001B7B4 208 00CF winmmDbgOut
    0000E69F 209 00D0 winmmSetDebugLevel
    00011BED 210 00D1 wod32Message
     
    _edge нравится это.