Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Открыть новую вкладку в текущем окне 
Author Message
MVV



PostPosted: Wed Jun 23, 2010 12:59    Post subject: Reply with quote

laburj wrote:
MVV, а не мог бы поподробнее рассказать как и что ты искал в winHex'e и в последствии на что заменял?
а также как сравнивал 2 файла в winHex'e?

Сравнивать можно просто в тотале. А в винхексе можно сравнивать и одновременно править, при этом можно сравнивать файлы с разных позиций (но кратных ширине строки) - для этого грузишь два файла и выбираешь View - Synchronize & Compare.

К сожалению, винхекс не позволяет править юникод-строки в текстовом виде, как некоторые hex-редакторы.

Открываешь распакованный файл в винхексе, жмешь Find Text, вводишь explorer.exe и выбираешь Unicode. Найдешь два места, где прописан explorer.exe - они рядом расположены. Далее нужно аккуратно прописать поверх строки explorer.exe новую строку (автор темы прописывал open.lnk) - необходимо уместиться в длину исходной строки. В юникод-строках каждый символ занимает два байта, английские символы кодируются как сам символ и за ним нулевой байт - поэтому все английские юникод-строки выглядят как текстовые строки, где после каждого символа идет нулевой байт - так их и надо оставить, и обязательно в конце два нулевых байта для завершения строки. То есть, исходная строка explorer.exe длиной 12 символов плюс завершающий нулевой (или 26 байт):
Code:
65 00  78 00  70 00  6C 00  6F 00  72 00  65 00  72 00  2E 00  65 00  78 00  65 00  00 00
e      x      p      l      o      r      e      r      .      e      x      e      _

(подчерком я обозначил нулевой символ)

Прописываем поверх этой строки, скажем, строку open.lnk длиной 8 символов плюс нулевой (18 байт):
Code:
6F 00  70 00  65 00  6E 00  2E 00  6C 00  6E 00  6B 00  00 00
o      p      e      n      .      l      n      k      _

Прописывать новые значения можно как в столбце текста, так и в столбце hex-значений (например, нулевой байт можно прописать только в нем).
А остаток исходной строки (там еще будут символы exe и нулевые байты) можно оставить без изменения, так как мы и так прервали строку нулевым символом (то есть, двумя нулевыми байтами).
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
View user's profile Send private message ICQ Number


Powered by phpBB © 2001, 2005 phpBB Group