2011-09-08 2 views
2

У меня почти есть ответ my last question, но мне нужна помощь.Понимание отрицательного смещения ссылки данных реестра на файл dll

окна Правило брандмауэра (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|[email protected],-32257|[email protected],-32260|[email protected],-32252|Edge=FALSE|

поле мне нужно декодировать это [email protected],-32252

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

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

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

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

+0

Он представляет идентификатор ресурса строки, отрицательный, чтобы сделать его абсолютным числом вместо относительного. Вам нужно будет использовать winapi для его чтения, LoadLibrary + LoadString + FreeLibrary. –

ответ

2

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

 Смежные вопросы

  • Нет связанных вопросов^_^