Добро пожаловать, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
Oct 2 2022, 14:25 | Полезные ссылки | http://debugging.games Из ABOUT.txt: QUOTE Debugging.Games is an archive for video game debug symbols. These aid in reverse-engineering and modding games. They do NOT enable debug menus or features. Отладочные символы для игр под разные платформы. Может кому-то пригодится. |
-=CHE@TER=-, | ||
Dec 26 2020, 15:16 | Жёсткий диск | Ну во-первых, это не в NTFS дело, максимальное количество файлов в папке там совпадает с максимальным количеством файлов на всём томе и равно 4,294,967,295. Я лично несколько раз видел в папке более 100,000 файлов. Возможно это тоже часть защиты программы с которой ты работал - нагадить в файловой системе при помощи эксплойтов ФС? Удалить папку получается или нет? Можешь попробовать открыть том WinHex'ом - удалить скорее всего файлы не получится, но показать их все он должен - там парсер NTFS свой, а не системный. Если покажет имена, попробуй в консоли удалить один файл по точному имени а не по маске. |
-=CHE@TER=-, | ||
Aug 25 2020, 14:58 | Клавиатура | По поводу формы Enter'а и расположения "\" и "|" - есть две стандартных раскладки - ANSI (американская) и ISO (британская) - можешь ознакомиться - https://en.wikipedia.org/wiki/Keyboard_layo...hanical_layouts и https://en.wikipedia.org/wiki/British_and_American_keyboards Всё остальное (включая и твою, -=CHE@TER=-, любимую клаву, т.к. это нестандартная раскладка) - поделие как раз таки этих "наркоманов-татьянычей-дизайнеров", как ты их назвал. Предположу, что тебе эта клавиатура понравилась потому, что она была у тебя первая? Вероятно, именно на ней ты начал программировать, на ней изучал многие вещи, привык именно к ней (и, что важно, не привык до неё ни к какой другой), тебе она казалась родной, тёплой и ламповой. ![]() Я же все подобные раскладки люто ненавижу, как на обычных клавах, так и на ноутбучных, где дизайнеры тоже стараются впихнуть в ограниченное пространство поверхности ноута побольше кнопок и переставляют их, меняют форму и размер как хотят. А ненавижу за то, что приходится каждый раз искать ту или иную кнопку, если она находится не там, где я её привык видеть, где она должна быть по стандарту. Либо вообще нажимаешь кнопку или комбинацию кнопок не глядя, а происходит совсем не то, что хотелось - просто на привычных местах совсем другие кнопки. Я уж молчу про классику данной темы - "гениально" расположенные "Sleep", "Wake" и "Power" на некоторых клавиатурах. ![]() Ну а по поводу качества клавиатур - всё как и везде - раньше все вещи делали качественнее. ![]() В общем, отхождение от стандартов - зло; раньше |
-=CHE@TER=-, | ||
Sep 26 2016, 19:14 | .DDS DirectX 10 | Я просто оставлю это здесь: https://software.intel.com/en-us/articles/i...re-works-plugin https://github.com/Microsoft/DirectXTex _ttp://skyrim.pro/stati/instrumentarij/100-dds-converter |
-=CHE@TER=-, Siberian GRemlin, | ||
Sep 24 2016, 15:39 | .DDS DirectX 10 | Я тогда написал bms для конвертирования в обычный DDS "обычных" текстур, который работал примерно на 90 процентах текстур которые мне попадались. Под "обычными" я подразумеваю RGBA, DXT1, DXT3, DXT5 текстуры. Это основные форматы, а вообще их там довольно много бывает, и не у всех есть аналоги в DX9, то есть не любую текстуру DX10 можно сконвертировать в DX9 dx10_to_dds.bms CODE IDString "DDS " GoTo 0x54 GetDString FOURCC 4 If FOURCC == "DX10" Append Log MEMORY_FILE 0 0x80 Get DATA_SIZE asize Math DATA_SIZE -= 0x94 Log MEMORY_FILE 0x94 DATA_SIZE Math DATA_SIZE += 0x80 Append GoTo 0x80 Get DXGI_FORMAT long If DXGI_FORMAT == 0x1D Set FOURCC long 0x00000000 #RGBA PutVarChr MEMORY_FILE 0x50 0x00000041 long PutVarChr MEMORY_FILE 0x58 0x00000020 long PutVarChr MEMORY_FILE 0x5C 0x000000FF long PutVarChr MEMORY_FILE 0x60 0x0000FF00 long PutVarChr MEMORY_FILE 0x64 0x00FF0000 long PutVarChr MEMORY_FILE 0x68 0xFF000000 long ElseIf DXGI_FORMAT == 0x48 Set FOURCC long 0x31545844 #DXT1 ElseIf DXGI_FORMAT == 0x4B Set FOURCC long 0x33545844 #DXT3 ElseIf DXGI_FORMAT == 0x4E Set FOURCC long 0x35545844 #DXT5 Else Print "Unknown DXGI_FORMAT (%DXGI_FORMAT%)" CleanExit EndIf PutVarChr MEMORY_FILE 0x54 FOURCC long Get FNAME basename String FNAME += ".dx9.dds" Log FNAME 0 DATA_SIZE MEMORY_FILE Else Print "Not a DirectX 10 DDS file" EndIf dx10_to_dds.cmd CODE for /r %%I in (*.dds) do "quickbms.exe" dx10_to_dds.bms %%I %%~dpI >>dx10_to_dds.log |
Siberian GRemlin, | ||
Jul 15 2016, 16:05 | Уголок параноика | QUOTE(-=CHE@TER=- @ Jul 15 2016, 12:03) [snapback]4127[/snapback] «Те, кто готовы пожертвовать насущной свободой ради малой толики временной безопасности, не достойны ни свободы, ни безопасности.» © Бенджамин Франклин Алсо, по поводу этого выражения есть и такое мнение: _ttps://habrahabr.ru/post/303736/#comment_9668184 и вообще, «Никогда не верьте цитатам из интернета.» В.И. Ленин А вообще, Siberian GRemlin у нас пророк. Напророчь нам чего-нибудь доброго и позитивного в следующий раз, а?.. |
-=CHE@TER=-, | ||
Jun 22 2016, 18:41 | Жёсткий диск | QUOTE(Siberian GRemlin @ Jun 19 2016, 18:41) [snapback]4104[/snapback] К сожалению, она не смогла помочь извлечь файлы из диска с разметкой GPT, которую в цикле запорола ОС «Windows XP x64». Это известный недуг данной ОС — при записи в область после 2 ТБ система начинает писать с нуля (зацикливается) и запарывает саму разметку с последующими файлами. И об этом не написано даже в сраной Википедии! Я вычитал это где-то в сети и подтверждаю лично, что так оно и есть. Не перестаю удивляться какие кретины работают в «Microsoft». Если кто-нибудь подскажет как можно восстановить данные с такого винта, то буду признателен. Смотря сколько успело затереться данных с начала диска, какой размер раздела, файловая система... Те данные, что перезаписались уже практически точно не восстановить, во всяком случае не на уровне программ. Оставшиеся данные можно попытаться в какой-то удобоваримый вид привести. На NTFS самая важная часть - таблица файлов $MFT обычно записывается в середине раздела, но к сожалению не всегда. Ещё, в теории, у неё должна быть копия - $MFTMirr, но я глянул на своих разделах - они разные по размеру. Из-за чего - не знаю. Загрузочный сектор раздела в NTFS дублируется в последнем секторе, его можно взять оттуда. Итого, чисто теоретически, порядок действий: 0. Делаешь образ диска до вмешательства, если что-то пойдёт не так - сможешь попробовать снова/другой способ 1. Ищешь по сигнатуре NTFS последний сектор побитого раздела, понять что это он можно по смещению от начала диска, примерно равному размеру раздела. 2. Из сектора узнаешь точный размер раздела, высчитываешь номер первого сектора, копируешь последний (загрузочный) туда. 3. Создаёшь с нуля таблицу разделов со своими разделами на этом диске. 4. Если повезло и $MFT частично хотя бы цела, то всякие проги для восстановления данных начнут там что-то видеть, возможно с именами, возможно файлы будут даже целые. |
-=CHE@TER=-, | ||
Feb 4 2016, 22:07 | !Вирусы! | QUOTE(Siberian GRemlin @ Feb 2 2016, 06:42) [snapback]4006[/snapback] Всё тем же. Проблем нет. Очень редко не выключается игровой режим антивируса (отдельный процесс) после выхода из игры — но он легко сносится через диспетчер задач. Аналогично, по-прежнему пользуюсь ESET Smart Security. На данный момент 8.0, но имхо, от версии к версии добавляют много левых фич (левых лично для меня - типа антивора или родительского контроля). Так что можно ставить и версию по-старее - хоть 4.2. Базы для старых версий так же обновляются. |
-=CHE@TER=-, | ||
May 4 2015, 19:47 | Сети | В некоторых модемах такой функционал есть в родной прошивке, некоторые можно прошить чем-нибудь вроде open-wrt или dd-wrt. У меня некогда был acorp, уже тогда его прошивка меня поразила функционалом, стабильностью и красотой веб-интерфейса, в сравнении с кривыми первыми прошивками d-link'а. Однако, после примерно года работы, (как раз по истечении гарантии), он перестал загружаться а если и загружался, то намертво зависал через пару минут работы. Поэтому у меня об этой фирме смешанные воспоминания... Однако, проверить необходимый функционал в родной прошивке твоего модема стОит, и если его там нет, то глянуть альтернативные прошивки для этой модели, так как технически это вполне возможно. |
Siberian GRemlin, | ||
Oct 26 2014, 23:48 | Delphi, Asm, C, WinAPI, PHP, ... | RegEdit'а тоже две версии. Из 32-битных приложений вызывается один и пишет в виртуальные ветки, из 64-битных вызывается другой. Я однажды долго не мог понять почему .reg файл, импортируемый из тотал командера (32-битного) не показывается в реестре, и в программе (x64) не работают настройки, которые я импортирую. А потом обнаружил, что regedit, вызванный из тотала и regedit, вызванный через "пуск->выполнить" показывают разный реестр... (в первом случае 32-ух, а во втором - 64-бинтую его версию). Добавил тот же самый .reg файл в реестр из проводника и всё заработало как и должно было. PS: а "REGEDIT4" вместо "Windows Registry Editor Version 5.00" писать бесполезно в данном случае... |
-=CHE@TER=-, | ||
Sep 18 2014, 14:15 | Delphi, Asm, C, WinAPI, PHP, ... | Если не ошибаюсь, оператор перенаправления вывода ">" по-умолчанию перенаправляет только поток STDOUT, а ошибки выводятся в STDERR. Попробуй так: CODE test.exe >>err.txt 2>&1 Это перенаправит STDERR в STDOUT, а его, в свою очередь, в файл err.txt Подробности: _ttp://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true |
-=CHE@TER=-, Siberian GRemlin, | ||
Jun 3 2014, 19:41 | Command & Conquer: Red Alert [Hidden Easter Egg] | Нашел вот по RA2 статью по ключам запуска. Возможно, что-то сработает и в первом? _http://modenc.renegadeprojects.com/Red_Alert_2 |
-=CHE@TER=-, | ||
Jan 19 2014, 23:09 | Spacebase DF9 | QUOTE(Siberian GRemlin @ Dec 25 2013, 21:36) [snapback]3623[/snapback] К сожалению, не то. Очень даже то ![]() То что это LuaJIT - это 100%, посмотрел в его исходниках формат raw-дампа bytecode - именно он (заголовок 0x1B, "LJ"). _ttp://wiki.luajit.org/Bytecode-2.0#LuaJIT-2.0-Bytecode-Dump-Format К декомпилятору есть пример. Угадай, по файлам из какой игры ![]() _ttps://github.com/bobsayshilol/luajit-decomp/wiki/Tutorial Так что копай дальше в этом направлении |
-=CHE@TER=-, Siberian GRemlin, | ||
Jan 4 2014, 21:00 | Обмен любезностями | Его таки купили, правда не M$ а некий аггрегатор радио-каналов Radionomy. Судя по всему, в первую очередь им нужен не сам винамп а сервис Shoutcast. Подробности: _http://www.xakep.ru/post/61837/default.asp |
-=CHE@TER=-, | ||
Dec 18 2013, 23:44 | Spacebase DF9 | Та формат то нормальный, просто почти в каждой проге его поддержка реализована не на 100% - там поддерживаются одни фишки формата, а там - другие. Например, столкнулся с необходимостью задать маску каналов - это чтобы не перетасовывать местами байты, когда порядок каналов, например, ABRG. Из просмотрщиков только IrfanView справился, и кажется, nvidia texture tools правильно перегнал в tga (но там только конвертер, просмотра нет). Ни XnView, ни Paint.NET, ни фотошоп с плагинами от той же nvidia, ни Imagine не смогли правильно отобразить такой файл - он либо не открывался совсем, либо каналы были перепутаны (то есть маска просто игнорировалась). А в DDS таких фишек, замечу стандартных и документированных, дофига, вот только не очень-то разработчики графических утилит смотрят в ту документацию... Наиболее адекватной и полной поддержкой, как мне показалось, обладают как раз утилитки от nvidia. Так что попробуй ими dds->tga и потом обратно. nvddsinfo из комплекта может показать специфическую информацию из заголовка в удобоваримой форме (можешь проверить что там у тебя фотошоп дописывает/не дописывает в заголовок) Сконвертировать текстуры бесплатно, без регистрации и SMS и без скачивания ![]() tex2dds.bms [codebox]IDstring "TEX " Set MEMORY_FILE compressed c3EJVqhhYGBgF+BgQAeMDKQBBSBmwadAAFMIAA== # DDS header ComType unzip_dynamic Get FNAME filename Get W short Get H short GoTo 0x14 Get ZSIZE long Get DATASIZE long PutVarChr MEMORY_FILE 0x0c H long PutVarChr MEMORY_FILE 0x10 W long PutVarChr MEMORY_FILE 0x14 DATASIZE long PutVarChr MEMORY_FILE 0x54 0x35545844 long # DXT5 Log MEMORY_FILE2 0 0x80 MEMORY_FILE Append CLog MEMORY_FILE2 0x20 ZSIZE DATASIZE Append String FNAME += ".dds" Math DATASIZE += 0x80 Log FNAME 0 DATASIZE MEMORY_FILE2 [/codebox] ну и convert_all.cmd CODE for %%I in (*.tex) do "c:\Program Files\QuickBMS\quickbms.exe" tex2dds.bms "%%I" . :: не потеряй точку в конце первой строки - её плохо там видно :) |
-=CHE@TER=-, Siberian GRemlin, | ||
May 20 2013, 20:44 | FireFox: addons, extensions, tweaks, etc. | QUOTE(Siberian GRemlin @ May 20 2013, 15:52) [snapback]3477[/snapback] Ещё такая необычная потребность. Надо сделать снимки (screenshots) допустим 2-5 тысяч страниц и делать это вручную поняное дело не хочется. Какие-нибудь есть готовые решения? Не обязательно через «лису». _ttp://www.pixel-technology.com/freeware/url2bmp/english/ |
-=CHE@TER=-, Siberian GRemlin, | ||
Mar 18 2013, 11:59 | InstallShield CAB View | Фокус не удался. ![]() Там походу имена каталогов привязаны к именам так называемых файловых групп. Чтоб всё работало, там надо либо патчить GetString() либо править все её вызовы. |
-=CHE@TER=-, | ||
Mar 16 2013, 12:17 | InstallShield CAB View | QUOTE(-=CHE@TER=- @ Dec 16 2010, 06:18) [snapback]3041[/snapback] Есть такая утилита как InstallShield 5.x/6.x Cabinet Compression & Maintenance Util (i5comp.exe / i6comp.exe). У меня к ней даже где-то исходные коды на сях валяются, попробую поковырять... Добавлено: Распаковщик: i6compx.zip Unicode, правда, не поддерживается (тупо переводится в ANSI с заменой на "_" левых символов), но главное, что оно всё правильно распаковывает. Флаг 0x04000000 я поставил от балды, т.к. не знаю какой там должен быть правильный, чтобы по нему определить наличие отсутствия Unicode. Кстати, это новая версия (у меня её не было) и там нет необходимости в ZD*.DLL файлах для распаковки - соответствующая библиотека статически слинкована с программой, что очень удобно. Недавно понадобилось распаковать одну прогу, обнаружил что имена директорий в CAB'ах там обрабатываются отдельно - при распаковке каталога от его имени остаётся только первый символ (т.к. тот же юникод, и второй байт, равный 0, считается как конец строки). Глянул исходник, вроде нашел где надо поправить, только вот в Visual Studio 2010 проект не захотел импортироваться ![]() Похоже, обработка имён каталогов идёт тут (i6comp.c): CODE LPDIRARRAY DirsArrayBuild(DFTABLE DFT) { LPDIRARRAY pDs; DWORD i; pDs = Alloc(sizeof(DIRARRAY) + pCabDesc->cDirs * sizeof(LPSTR)); for (i = 0; i < pCabDesc->cDirs; i++) pDs->Dirs[i] = strdup(GetString(DFT, DFT[i])); pDs->Count = pCabDesc->cDirs; return pDs; } По аналогии с твоим фиксом для имён файлов, здесь должно быть что-то вроде CODE LPDIRARRAY DirsArrayBuild(DFTABLE DFT) { LPDIRARRAY pDs; DWORD i; char stmp[MAX_PATH]; // CXTP pDs = Alloc(sizeof(DIRARRAY) + pCabDesc->cDirs * sizeof(LPSTR)); for (i = 0; i < pCabDesc->cDirs; i++) // CXTP/ if(CabHdr.Version & 0x04000000){ stmp[0] = '\0'; WideCharToMultiByte(CP_ACP, 0, GetString(DFT, DFT[i]), -1, stmp, MAX_PATH, "_", NULL); pDs->Dirs[i] = strdup(stmp); }else{ pDs->Dirs[i] = strdup(GetString(DFT, DFT[i])); } // /CXTP pDs->Count = pCabDesc->cDirs; return pDs; } |
-=CHE@TER=-, | ||
Jul 26 2012, 09:25 | HTTP sniffer | Вот ещё наткнулся на аналогичную прогу от NirSoft: _http://www.nirsoft.net/utils/http_network_sniffer.html требует установленного WinPCap, зато подходит для захвата из любого браузера. |
-=CHE@TER=-, Siberian GRemlin, | ||
May 2 2012, 21:35 | Кто чего слушает? | торрент устроит? (Progressive rock, 70's jazz, soul, funk) Дискография групп с участием Frank Klepacki (I AM, Home Cookin', The Bitters), ALAC (tracks+.cue), lossless _ttp://rutracker.org/forum/viewtopic.php?t=2615947 |
-=CHE@TER=-, | ||
Jul 16 2011, 20:00 | The Neverhood | google на запрос "c:\NevShot.bmp" первой же выдаёт ссылку на "лицокнигу": _ttp://www.facebook.com/note.php?note_id=186139338110083 QUOTE The developers of The Neverhood created secret shortcuts to make testing faster and easier. Most of these "cheats" were removed from the retail version, but a few are still there. While playing the game, hit the ENTER key, type one of the codes below, and then hit ENTER again. When the cheat code is right you will hear a short sound effect. For codes that solve specific puzzles, you have to already be in that part of the game. Here are some codes that you can try out: FastForward Makes everything move faster. Doing it again will set the speed back to normal. Great for getting through the Hall of Records! ScreenSnapShot Saves a screen shot image to your hard drive as a file called c:\NevShot.bmp. Doing it again will overwrite the previous one, so you have to move or rename the file each time. HappyBirthdayKlaymen Gets you out of the Nursery (the first room) LetMeOutOfHere Gets you out of the Nursery Lobby (the second room with the rings and Venus Fly Trap) Please Solves the panel puzzle in the Dynamite Shack заметка свежая - от 7 июля. учитывая, что и тема начата 9-го июля, напрашивается вопрос - чем вызвано такое одновременное возобновление интереса к этой игре? или это просто совпадение? ![]() |
-=CHE@TER=-, | ||
Jul 11 2011, 14:15 | The Neverhood | В общем каждый символ кода (цифра или буква) сдвигает бит, которым xor'ится хеш, на определённое количество бит влево. Для цифр от 0 до 9 значение сдвига равно от 6 до 15 ($30+$16-$40=6); для букв это значение равно от 1 до 26 ($41-$40=1). Причём сдвиг например для 3-го символа отсчитывается не от 0-го бита а от величины сдвига для 2-го символа. Когда сдвиг превышает размер хеша, т.е. 32 бита, он уменьшается на 32, т.е. гоняется по кругу (те самые "If C >= $20 Then C:=C - $20;"). Для восстановления исходной фразы (на самом деле, лишь одной из множества исходных фраз, дающих одинаковый хеш) нужно проделать следующее: записываем хеш в двоичном виде, в little endian (для примера рассмотрим хеш $843070C0): CODE 10000100 00110000 01110000 11000000 и начинаем разбирать зажженные биты от младшего к старшему (справа налево, пронумеровав их от 0 до 31). Чтобы зажечь 6-й бит нам нужно было сдвинуть единицу (нулевой бит) на 6 бит влево. Сдвигу в 6 бит соответствует 6-я буква - "F". Чтобы зажечь следующий, 7-й, бит нужно сдвинуть на 1 бит (считаем от предыдущего зажженного - от 6-го бита), для этого нужна буква "A". Далее, для 12-го бита - смещение 5, и соответственно буква "E", и т.д. Для зажжения всех 9-ти бит нам понадобится минимум 9 букв - "FAEAAFAEE". По идее, этот код даст такой же хеш как и "fastforward", а значит и действовать будет так же. Если нужно зажечь 0-й бит в хеше, то, т.к. сделать это сразу не получится, его надо зажигать последним, перепрыгнув через 32 бита (если бы нам надо было зажечь его в нашем примере, то нужно было бы дописать в конец кода ещё букву "A" - "FAEAAFAEEA". Мы получили бы смещение 32, которое превратилось бы в 0 и зажегся бы 0-й бит.) Описание получилось немного дурацкое, но думаю ты разберёшься ![]() |
-=CHE@TER=-, | ||
Jul 9 2011, 20:07 | The Neverhood | $10410127 - "AACCHFFD" ![]() Правда у меня демка с какими-то артефактами работает... _ttp://fastpic.ru/view/25/2011/0710/5d5d4d76cb7d379fd6feb5c044daacc0.png.html Алгоритм опишу чуть позже, а может к тому времени и сам разберёшь, он на самом деле довольно прост. |
-=CHE@TER=-, | ||
Apr 15 2011, 15:34 | !Вирусы! | нет, триальные ключи подходят только на триальную версию EAV. для обновления бизнес-версии - или левые (ворованные) ключи, или неофициальные сервера обновлений. ключи быстрее умирают, а серваки бывают перегружены. лично я обновляюсь с неоф. серваков. а вообще глянь ветку на руборде на предмет поиска наиболее подходящего варианта лечения, их немало ![]() |
-=CHE@TER=-, | ||
Apr 14 2011, 15:03 | !Вирусы! | QUOTE При установке главное выбрать ручную инсталляцию компонентов и отключить установку ублюдского Яндекс.Бара. Теперь я, кажется, знаю отличия бизнес версии ![]() Попробуй поставить EAVBE - там нет этой годости. По крайней мере в ESSBE её нету. Ну и ложечка дёгтя: просканируй есетом папки с 64к интро и ломаным софтом (кейгены, кряки). |
-=CHE@TER=-, | ||
Упрощённая версия | Сейчас: 21st August 2024 - 16:34 |