Понимание отрицательного смещения ссылки данных реестра на файл DLL - PullRequest
2 голосов
/ 08 сентября 2011

У меня почти есть ответ на мой последний вопрос , но мне нужна помощь.

Правила брандмауэра Windows (Vista и выше) хранятся в реестре HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules

Пример правила: v2.0|Action=Allow|Active=TRUE|Dir=Out|Protocol=6|Profile=Domain|RPort=5722|App=%SystemRoot%\system32\dfsr.exe|Svc=Dfsr|Name=@FirewallAPI.dll,-32257|Desc=@FirewallAPI.dll,-32260|EmbedCtxt=@FirewallAPI.dll,-32252|Edge=FALSE|

Поле, которое мне нужно декодировать: EmbedCtxt=@FirewallAPI.dll,-32252

Я думаю, что это ссылается на C:\WINDOWS\System32\FirewallAPI.dll, но я не могу понять, как работает число. Размер файла ~ 400 КБ.

Я пробовал несколько вариантов, например, притворяясь, что это было без знака short, притворяясь, что оно не было отрицательным, притворяясь, что оно было смещено от конца, но они не выглядели правильно, когда я прибыл в локацию с моим редактором шестнадцатеричных символов.

Может ли кто-нибудь дать мне свои идеи? Что может означать это число? Я почти ничего не знаю о файлах DLL. Это может быть даже номер раздела, который я знаю.

Я также пытался найти в тексте ожидаемый вывод, но, похоже, он не является ни байтом на символ, ни UTF-16, либо этим, либо я делаю что-то не так.

1 Ответ

2 голосов
/ 10 февраля 2012

Раймонд покрывает это здесь . Положительные числа являются индексами ресурса. Отрицательные числа (после удаления знака минус) являются идентификаторами ресурса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...