Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Windows 98 SE (оптимизация и улучшение) — девятая часть

Модерирует : KLASS, IFkO

IFkO (01-01-2022 00:47):  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231

   

Windows 98 SE (оптимизация и улучшение) — девятая часть
 ОтветГолосаПроценты
Я тут случайно80
23.95%
Просто люблю старье33
9.88%
Сам не знаю, зачем вожусь6
1.80%
Ностальгия именно по 9x99
29.64%
9x - основная на очень старом железе (до П2/Атлон)16
4.79%
9x - основная на старом железе (до Core)28
8.38%
9x - основная на новом железе (Core и новее)7
2.10%
Только в виртуалке12
3.59%
Спортивный интерес (доколе оно вообще может тянуть?)51
15.27%
Я - Рудольф...2
0.60%
Тема закрыта .Всего Голосов: 334
MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Windows 98 Second Edition  
ДЕВЯТАЯ ЧАСТЬ

     Особенности работы с Windows 98 учитывая прогресс в программном обеспечении и совершенствование компьютеров. Основное в теме это обновления Windows 98SE. Добрые люди выпускают "неофициальные паки обновлений" - сборники заплат (преимущественно от M$), призванных улучшить работу операционной системы. Актуальные паки выкладывают maxud, IFkO и другие.

Практические аппаратные и программные
пределы работоспособности 98SE
 
(с учетом представленных в этой теме решений)


Последние доступные сборки обновлений, патчи, утилиты и драйвера:

  • Windows 98IF от IFkO - неофициальная модульная сборка Windows 98SE с предустановленными обновлениями, заплатками, улучшениями и дополнительными компонентами ( готовые варианты )
     
  • Драйверы и компоненты для Windows 98SE или 98IF от IFkO, предназначенные для установки в систему и интеграции в дистрибутив.
  • Краткая и полная инструкции по сборке дистрибутива Windows 98IF.
     
    Обновления от Maximus Decim
  • Инструкция по правильной установке Windows 98SE от maxud (версия от 21.02.2009) со ссылками на недостающие компоненты. Альтернативные списки ссылок - здесь и здесь.
     
  • UnSP (Unofficial Service Pack) for Windows 98SE by Alper Coskun (aka Gape). Список отличий MDCU от UnSP.
  • Unofficial Windows 98 Standard Edition (aka First Edition/Gold/RTM) Service Pack English by Petr & erpdude8: 2.5.6, 2.58 RC Lite (зеркало), 2.58 Final Full (зеркало)
  • Unofficial Windows 98 Second Edition Service Pack 3.61 by Problemchyld (зеркало)
     
     
  • Revolutions Pack 9.7 by Simplestas (aka Tihiy) - замечательная адаптация скинов от Windows XP и Vista под Windows 98/ME (улучшенное оформление окон, новые иконки и эффекты, новая панель снятия задач, сглаживание шрифтов ClearType и многое другое)
  • Tihiy's Tools - коллекция бесплатных утилит для Windows 98/ME от Simplestas (aka Tihiy), включающая индикатор сетевых подключений в трее, удобную панель снятия задач, панель завершения работы от XP и другие инструменты.
  • KernelEx 4.5 Final Multilingual by Xeno86 - проект по модифицированию библиотеки kernel32.dll для обеспечения возможности запуска под Windows 98/ME программ и игр для XP. KernelEx4.5.2 - последняя версия  (он же, адаптированный  HNKTO для дистрибутива Windows 98IF)..  
  • SH95UPD (Shell 95 Update Project) 0.0.8 by sp193 - проект по модифицированию библиотеки shell32.dll от Windows 95, используемой в урезанных версиях Windows 98/ME, для обеспечения лучшей совместимости с этими ОС, основан на исходниках от KernelEx.
     
  • Tweaked Unofficial NVIDIA Display Driver 82.69 for Windows 98/ME by MDGx - последние неофициальные драйвера для всей линейки видеокарт GeForce 82.69_fixed (или модульный драйвер видеокарт nVidia от IFkO, включающий и 82.69)  
  • SciTech SNAP Graphics - универсальные кроссплатформенные драйвера для широкого спектра видеокарт от разных производителей.
  • VBEMP x86 by bearwindows - универсальный (для любых видеокарт) VESA/VBE видеодрайвер для архитектуры Windows 9x.
  • ReadDVD! - драйвер для чтения дисков в формате UDF 1.5-2.x в Windows 95-ME (он же, пересобранный  IFkO).
  • Panasonic DVD-RAM Driver - драйвер, добавляющий в Windows 95-ME поддержку записи DVD-RAM дисков, подробнее
     
  • RASPPPoE - сетевой протокол PPP over Ethernet для Windows 95-2003, некоторые провайдеры Интернета подключают только через него (он же, в одном пакете с сетевыми драйверами от  IFkO)
  • Active Directory Client Extensions (dsclient.exe) 5.0.2920.5 Russian (Q323466) - клиентское ПО для получения доступа из Windows 95-ME к службам Active Directory и DFS операционной системы Windows 2000 Server.
     
  • VirNETas Regional Settings Changer 3.04.0246 - мощная программа для изменения региональных настроек в английских версиях Windows 95/98, оптимизирована для работы с Windows 98SE (спасибо Grigorijg), подробное описание внутри архива.
  • Microsoft Plus! for Windows 98 - пакет дополнительных программ и тем оформления рабочего стола.
  • Microsoft Windows 95, 98, MS-DOS Resource Kits - комплекты утилит, не входящих в основную поставку вышеуказанных систем.

    Навигация по топику и ссылки на интересные статьи по теме:

    Для просмотра всех сообщений темы в одном окне пользуйтесь "версией для печати" (одноименная ссылка над нумерацией страниц)

  • Windows 9x + RAM > 512 Мб - обзор всех существующих способов решения проблемы + исчерпывающая статья с сайта iXBT (aka матчасть) + версия Microsoft (статьи KB184447, KB253912, KB304943 в вольном переводе от maxud)
  • Сбрось память на диск - статья о работе Windows 9x с виртуальной памятью, дисковым кэшем и файлом подкачки + авторская версия.  
    Самая свежая версия LIMEM с исходниками
  • Как изменить "GENERIC IDE DISK TYPE 47" в списке устройств на реальное имя диска на чипсетах Intel, VIA и SiS + DMRP (Drive Model Reading Patch) от MERCURY127 - патч ядра для любых чипсетов, версий и языков Windows 95/98/SE/ME.
  • Как установить "Intel Ultra ATA Storage Driver" и "Intel Application Accelerator" на чипсеты Intel 430/440. (подробнее)
  • Все, что нужно знать о доступе к локальным томам NTFS из под систем 9х
  • Несколько советов по использованию Windows Update
  • Большая коллекция разнообразных обновлений и патчей для Windows 95-ME (и не только)
  • Последние Microsoft Windows Hardware Compatibility Lists (HCLs) для NT/95/98/SE/ME/2K/XP  
  • Обсуждение Windows 95-ME на форуме MSFN

  • Сайт с описанием всевозможных опций основных BIOS, в т.ч. с подсказками по правильному выбору опций для 9х

    Схожие темы по Windows 95 и Windows ME :: Тема в Варезнике




     
    Раздача некоторых патчей от Rudolph R. Loew тут



  • Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 10:03 30-09-2018 | Исправлено: IFkO, 09:39 28-01-2020
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    можно-ли как-то .dll преобразовать в .lib?

    Теоретически это возможно (но без некоторых имён), поскольку оба формата построены на базе одного и того же COFF. На практике мне не попадалось прямых конвертеров. Думаю, что можно скормить DLL дизассемблеру и тут же скомпилировать обратно с генерацией LIB-файла.
     

    Цитата:
    достаточно автоматическое достаточно автономное средство пристыковки к готовой .dll кода новых функций и точек входа в них

    Две независимые DLLки можно сцепить относительно легко - одноимённые секции тупо стыкуются, RVA внешних объектов во второй DLL пересчитываются, после чего стыкуются таблицы экспорта и фиксапов. Только в случае с CRT независимость новых функций вызывает у меня сильные сомнения - например, чуть ли не каждая функция пишет errno. Но errno хотя бы есть в таблице экспорта, а ну как попадётся внутренняя глобальная переменная?
     

    Цитата:
    так бы можно было просто из исходников с Win10 DDK собрать msvcrt <...> Не катит

    А почему не катит, кстати?

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 23:43 19-01-2021
    HNKTO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Думаю, что можно скормить DLL дизассемблеру и тут же скомпилировать обратно с генерацией LIB-файла.

    Чем-бы такое провернуть... хотя "независимые DLLки можно сцепить относительно легко - одноимённые секции..."как по мне звучит интересней. Тобишь надёжней. Правда в нашем случае у второй будет масса импортов к первой.

    Цитата:
    а ну как попадётся внутренняя глобальная переменная

    Это ужо проверять на совести программиста. Накрайняк "проэкспортировать" и её, если действительно понадобится. ... хотя да, тут не так-то всё просто... а знаешь ли что errno для каждого потока своя, независимая?
    У меня главные мысли вокруг _s функций, которые ни что иное как переименования и небольшие переиначивания того что и так уже было. Но есть что (например новые Tor-ы) именно из за их отсутствия и не работающее.

    Цитата:
    А почему не катит, кстати?

    Нет, в самом принципе-то катит. В скорости потеряем. Или повторять руками кучу прямых обращений в ядро 9x, а до этого ещё досканольно разобраться как сделана 9x msvcrt, чтоб знать что, где и как повторять. Короче или совсем другая трудоёмкость или мы плавно получим 10ку в плане производительности и прожорливости, что вот совсем неинтересно. ... да и если вообще похрен на это - грёбаных состав работы проработать тыщу функций, нежели прицепить к готовой dll несколько новых, потом ещё несколько и т.д. по тихоньку.

    Всего записей: 2093 | Зарегистр. 30-01-2010 | Отправлено: 00:17 20-01-2021 | Исправлено: HNKTO, 00:21 20-01-2021
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    uShell, а кстати! Как удалить из пе файла импорт?  
    Как добавить - я кучу мануалов видел и даже готовых тулз.  
    А вот как удалить?  
    Вот есть StudPE, там можно Add New Import
    Но мне не надо Add, мне надо Delete This Import!
     

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 11:20 20-01-2021 | Исправлено: MERCURY127, 12:31 20-01-2021
    cdotimp

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HNKTO

    Цитата:
    А ОЗУ там сколько? 98 больше ОЗУ хочет, нежели камень грузит. если SDRAM и платформа поддерживает - можно и 256 воткнуть.
    Резервная ПЗУшка... поматай выше - я там целую 98IF на 32метра засунул и ещё под конечный софт осталось.
    Но это так... в виду "это к докторам" - это даже не советы. Прикольный компухтер.

    ОЗУ 32mb, расширять только напаиванием, до 64mb. 95-я на нём очень шустро бегает, SSD тоже помогает. 98-ю на ней даже не пробовал запускать, да и смысл дублировать, есть ноут с 98-й.
     
    На скорую руку протестировал скорость DOSLFN. Во первых, вспомнил, почему старую версию использую. Последняя, которая 0.41c - резидент в памяти висит, но что-то работает не так. VC 4.99 LFN папки и файлы кажет короткими, PKUNZIP 2.50 при распаковке просто не сохраняет на диске длинные папки и файлы, с ошибкой: "Warning. Can't create... bla-bla". Пользуюсь 0.32i, с ней всё ок. Промежуточные версии не пробовал.
     
    И выяснил, что совершенно зря гружу SMARTDRV совместно с DOSLFN, он заметно снижает скорость.
    Архив с WINDOWS и Program Files, 48mb, 2395 файлов.
    Загружен DOSLFN 0.32i и SMARTDRV - время выполнения операции распаковки архива - 7 мин. 32 сек.
    Загружен только DOSLFN - 4 мин. 58 сек.
    Если гружу SMARTDRV с явным указанием размера ОЗУ под кэш, например SMARTDRV 16000 - время ещё увеличивается - 8 мин. 34 сек.
    Сперва подумал, что SMARTDRV бесполезен и даже мешает с моим SSD, но решил тоже самое проверить, распаковав архив без DOSLFN.
    Без SMARTDRV - 4 мин. 18 сек.
    SMARTDRV загружен - 3 мин. 32 сек.
     
    И, похоже, DOSLFN сам по себе несущественно снижает скорость операций, по крайней мере в моём случае. Примерно на 15%

    Всего записей: 188 | Зарегистр. 10-08-2006 | Отправлено: 12:05 20-01-2021
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HNKTO, оказывается, это реально избитая проблема с ДиректДрав в 8+...  
    https://answers.microsoft.com/en-us/windows/forum/games_windows_10/directdraw-emulation-still-broken-in-windows-10/5a619148-cf1e-4813-b733-997b996b9567
    единственное найденное решение - поставить WINE for Windows.  
    "ты должен поставить эмулятор Windows под Windows, чтоб играть в игрушки для Windows под Windows..."
    бедный процессор...

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 12:58 20-01-2021 | Исправлено: MERCURY127, 13:00 20-01-2021
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MERCURY127
    Самое правильное - пересобрать таблицу импорта без этого элемента. Это не очень сложно: надо найти (в двух местах) 4-байтное смещение имени функции и удалить его. Чтобы не пересчитывать все смещения в PE-файле, вместо удаления пойдёт копирование 4-байтных слов после этого на 1 назад. Если нужно только сделать конкретную функцию недоступной, проще всего в hex-редакторе забить её имя ерундой.
     
    Всё вышесказанное справедливо, если импорт в EXE-файле только традиционный, через IAT. Если есть ещё bound import, возни будет больше.
     
    Добавлено:
    Вообще у меня давно чесались руки сделать ручное пересобирание каталога ресурсов (чтобы оптимизировать картинки в PE-файле), но пока не доходили. Я и с unrar.dll пока застрял. Так что высказанные здесь пожелания я накапливаю, но когда сделаю, сказать не могу.
     
    Ещё добавлено:
    Я ошибся насчёт пересобирания таблицы импорта: см. посты далее.

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 13:00 20-01-2021 | Исправлено: uShell, 14:50 20-01-2021
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Если нужно только сделать конкретную функцию недоступной, проще всего в hex-редакторе забить её имя ерундой.
    нет, мне нужно другое - убрать отсутствующий импорт в драйвере (или проге), вместо того чтоб добавлять их в WDMEX/WDMSTUB.  
     
    чаще всего проще убрать зависимость прямо в коде, вернув нужный результат прямо на месте. но вот импорты в таблице остаются, и с ними надо что то делать. я уже научился их забивать другой, уже миеющейся функой, но хотелось бы просто вычистить теперь уже ненужное.

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 13:09 20-01-2021
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да, с забиванием ерундой я погорячился - надо действительно брать имя заведомо существующей функции, чтобы программа не получила от ОС отлуп за отсутствующую зависимость. Уменьшение размера EXE будет посложнее: надо не только удалить этот импорт, но и перестроить всю таблицу и пересчитать имеющиеся в ней RVA. Кстати, если за таблицей импорта в той же секции лежит что-то ещё - надо будет разбирать вообще все структуры EXE.
     
    Добавлено:
    MERCURY127, я Вас обманул. Уменьшить размер EXE-файла, выкинув неиспользуемый импорт, НЕЛЬЗЯ: внутри кода ссылки на таблицу идут по смещению, так что удаление непоследнего элемента отправит "в космос" указатели на все функции после удалённой! Надо либо дизассемблировать весь код и пофиксить эти указатели, либо перекомпоновать программу из объектного кода (которого обычно нет). Максимум, что можно сделать, - импортировать вместо удалённой функции какую-нибудь по ординалу и выкинуть имя.

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 14:45 20-01-2021 | Исправлено: uShell, 14:59 20-01-2021
    HNKTO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Как удалить из пе файла импорт?

    попробуй https://softwiki.net/CFF_Explorer.html
    или подожди пока домой вернусь - именно тот что у меня дам. Удаляет, переименовывает.

    Цитата:
    убрать отсутствующий импорт в драйвере

    А вот это меняет дело! Не могу подсказать. У меня для LEшек и 16битных исполняемых даже просто смотрелки зависимостей нет.

    Цитата:
    расширять только напаиванием, до 64mb

    ммм нет большей планки SDRAM-а? (или есть, но платформа даже 128 уже не поддерживает?)

    Цитата:
    Пользуюсь 0.32i

    это надо отметить.

    Цитата:
    оказывается, это реально избитая проблема с ДиректДрав

    Что-ж. NT6.x... в угоду лёгкой программной эмуляции широкого функционала для тупого дешёвого говна поломали всё старое, что в оригинале и по утверждённому стандарту как раз должно было работать именно быстро.
    Теперь оно и работает хорошо только на дешманде, точней везде одинаково хреново.

    Цитата:
    бедный процессор

    В который всунули аппартное ускорение виртуализации чтоб быстро работать сотню виртуальных машин ... и поддержка которой как раз главная фича и инновация 10винды. На энтерпрайзе - понятно. Но дома... так и живём.

    Всего записей: 2093 | Зарегистр. 30-01-2010 | Отправлено: 15:50 20-01-2021 | Исправлено: HNKTO, 15:52 20-01-2021
    IFkO



    Moderator
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    vorob

    Цитата:
    Только вернулся из поездки, сейчас проверю.
    Ну что, проверил наконец?
    И на тебе: http://bust.narod.ru/MOTOWN.INF
    Его надо положить в ДИСТРИБУТИВ IF/2 для исправления исходной звуковой схемы.
     
     
    HNKTO
    Протестировал как следует работу сборки с MP3 вообще и с твоим (далее "кривой.MP3") в частности. Результаты:
                       MP3                                  кривой.mp3
    GOM 2.1.16  +(WM9 или AX)                    -
    GOM 2.1.33  +(WM9 или AX)                    +(AX)
    TC (F3)         +(WM9 или AX  или FFDS)    -
    WMP 6          +(WM6 или AX* или FFDS)   -
    WMP 9          +                                        +
     
    MPC              +                                        +
    SCMPX          +                                        +
    WinAmp 2.96 +                                        +
    WinAmp 5.21 +                                        +
    XMP              +                                        +
    *) кодек L3codecX.AX входит в Windows Media 6, так что в данном случае WM6 равнозначно AX
     
    Разъяснения:
    1. Хорошо видно, что "кривой.mp3" действительно кривой, но некритично: он не воспроизведётся только в системе, где нет других проигрывателей, кроме WMP6.
    2. Во всех вариантах сборки поддержка MP3 работает адекватно. Как через фильтры DirectShow, так и специализированными аудио проигрывателями, из которых ни один не имеет проблем с кривым.mp3
    3. Вариант "TC" (Total Commander) демонстрирует использование DirectShow для воспроизведения MP3: TC гарантированно не добавляет никаких своих заморочек и фич, берёт всё нужное из DirectShow.
    4. Добавление декодера L3codecX.AX улучшает ситуацию лишь в одном случае: проигрыватель GOM 2.1.33 начинает играть кривой.mp3 только с ним. Но поскольку GOM сам кривой (несовместим с FFDShow, притом все препарированные версии), это не аргумент для добавления L3codecX.AX в сборку. Во всех остальных случаях от его наличия ровно ничего не меняется.
    5. Теоретически можно добавить L3codecX.AX, чтобы можно было играть MP3, не ставя тяжелые комбайны типа Windows Media и FFDShow. Но WMP всё равно тащит за собой Windows Media, а MPC играет MP3 вообще без кодеков, так что это может пригодиться только при использовании сторонних проигрывателей DirectShow. В общем, я пока колеблюсь.

    Всего записей: 6886 | Зарегистр. 22-09-2005 | Отправлено: 17:32 20-01-2021 | Исправлено: IFkO, 09:10 21-01-2021
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    У меня для LEшек и 16битных исполняемых даже просто смотрелки зависимостей нет.
    да эти ковырять смысла нет. только ПЕшки.

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 18:25 20-01-2021
    HNKTO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Но WMP всё равно тащит за собой Windows Media

    Кстати реально тащит? Я не пробовал, но что будет если поставить первое но не поставить второе?

    Цитата:
    L3codecX.AX, чтобы можно было играть MP3, не ставя тяжелые комбайны

    И это на самом единственный довод. Забудь. Может вспомним если у меня таки дозреет как ввинтить набор кодеков требующих Кекс, но позволяющих играть много новое и/или производительней/ровней имеющихся.
    кстати: правильный ответ данж-мастера: там системный сплиттер MPEG контейнера не может разобрать сей кривой MP3, соответствено кодеку тупо некуда цепляться.
    Зря напрягался, но спасибо. Не знал что WMP 9 тянет какой-то внутренний MPEG сплиттер.

    Всего записей: 2093 | Зарегистр. 30-01-2010 | Отправлено: 18:41 20-01-2021 | Исправлено: HNKTO, 23:54 20-01-2021
    IFkO



    Moderator
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    HNKTO

    Цитата:
    Кстати реально тащит?
    Девятый - реально, без WM9 он всего лишь "лицевая панель". Шестой может что-то проиграть, если в системе есть нужные кодеки. Поэтому там в скобках и указано, при наличии каких он играет MP3.
    Да, я ещё проводил опыты с WMP, включая-отключая отдельные кодеки MP3, но наспех, их результаты надо перепроверить. Поэтому о них отпишусь позже.

    Цитата:
    И это на самом единственный довод.
    Вторая причина - случай с 3DMark-ом, с которого всё и началось. Только поэтому я и не плюнул на это сразу.

    Цитата:
    Не знал что WMP 9 тянет какой-то внутренний MPEG сплиттер
    Вероятно, из Windows Media 9.

    Всего записей: 6886 | Зарегистр. 22-09-2005 | Отправлено: 19:11 20-01-2021 | Исправлено: IFkO, 19:14 20-01-2021
    HNKTO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Как удалить из пе файла импорт?

    Не. Вру. У меня CFF Explorer VIII. Но проверил - он может удалить всю библиотеку со всеми её импортами, но не импорт одной функции. С другого боку можно перебить на что-то другое, имеющееся в dll. Некрасиво, но работоспособно.
    Кстати добавить что либо новое в таблицу импортов он тоже не умеет, Хотя нет, умеет, но в отдельном разделе.
    так что твой похоже вообще продвинутей. Надо-бы найти его...

    Всего записей: 2093 | Зарегистр. 30-01-2010 | Отправлено: 10:57 21-01-2021 | Исправлено: HNKTO, 11:10 21-01-2021
    SweetLow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MERCURY127

    Цитата:
    Но мне не надо Add, мне надо Delete This Import!

    Угу, и чтобы нопами все точки вызова забило. А нет, маловато будет, чтобы разумные значения возврата если это именно функция автоматом подставлялись. Стоп, опять мало, и вары тоже...
     
    Добавлено:

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

    Забивать в другое имя - это хорошее решение. Ибо там всегда есть пара "имя функции/адрес функции" в разных секциях и изъять именно адрес нельзя - поплывут RVA всех адресов за ним.

    Всего записей: 1013 | Зарегистр. 08-03-2005 | Отправлено: 12:20 21-01-2021
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ибо там всегда есть пара "имя функции/адрес функции"
    не всегда... импорты ТОЛЬКО по ординалу никто не запрещал:  
    http://ipic.su/img/img7/fs/20210121001.1611223294.png

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 13:02 21-01-2021
    SweetLow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MERCURY127

    Цитата:
    импорты ТОЛЬКО по ординалу никто не запрещал

    Не запрещал. Но мои глазки надеюсь меня не обманывают - там драйвер на картинке упомянут?

    Всего записей: 1013 | Зарегистр. 08-03-2005 | Отправлено: 14:59 21-01-2021
    HNKTO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Почём Флэш мучаешь? Вроде и так работает...
    Ординалу - это всё да, но один фиг отметка в таблице.
    Что в общем не исключает что просто оставить пустой разрыв действительно нельзя, ПЕ загрузчик этого не поймёт. Ну а и наче да, за исключением вариантов последней с конца - нам надо правит все офсеты по всему коду, и это далеко не карантирует работу, ибо а-ля внутрях адрес вызываемой функции в точку вызова мог подставляться переменной и т. п.

    Всего записей: 2093 | Зарегистр. 30-01-2010 | Отправлено: 17:42 21-01-2021
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Почём Флэш мучаешь? Вроде и так работает...  
    я не мучаю, просто так, показать хотел.
    я уже понял, что там весь файл придется переписывать, из-заб чего оно, собственно, до сих пор нигде и не реализовано.
    еще вопрос есть: имя замещающей функи обязательно надо такое же по длине искать?

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 19:19 21-01-2021
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MERCURY127
    Чтобы не перестраивать всю таблицу импорта, имя новой функции должно быть не длиннее старой. Короче - можно (они ASCIIZ).
     
    Добавлено:
    Напомню ещё, что можно вместо выкидываемых имён подставить самое короткое из возможных (как вариант - оставить только ординал) - тогда можно будет подсократить таблицу имён. RVA оставшихся имён придётся пересчитывать, но это повлечёт перестроение только таблицы импорта, в отличие от поиска CALL-ов по всему коду.
     
    И ещё один хак: если имя вызываемой функции где-то ещё явно хранится в программе, то из таблицы импорта его теоретически можно выкинуть и указать RVA того места в программе.

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 21:04 21-01-2021
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Windows 98 SE (оптимизация и улучшение) — девятая часть
    IFkO (01-01-2022 00:47):


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru