|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 7, 2004 14:31:32 господа!!! Вот интересный вопрос про это самое поле, оно устанавливается в заголовках, принадлежащих драйверам режима ядра. А как оно считается, по какому алгоритму и принципу ??? |
|
|
Дата: Апр 7, 2004 15:51:06 Если не ошибаюсь - сложить_все_байты xor 0xFFFF |
|
|
Дата: Апр 7, 2004 16:51:06 win2k\private\ntos\rtl\checksum.c :) |
|
|
Дата: Апр 7, 2004 18:25:10 · Поправил: Snowbit Это из документации Microsoft по PE: "The algorithm for computing is incorporated into IMAGHELP.DLL." Не хочет Microsoft нам этот алгоритм раскрывать :). Если не ошибаюсь, контрольную сумму подсчитывает функция CheckSumMappedFile |
|
|
Дата: Апр 7, 2004 21:12:52 \fasm\SOURCE\FORMATS.INC\calculate_checksum: _http://board.win32asmcommunity.net/showthread.php?s=&threadid=1883 |
|
|
Дата: Апр 7, 2004 21:17:39 ssx :)
USHORT
ChkSum(
ULONG PartialSum,
PUSHORT Source,
ULONG Length
)
{
while (Length--) {
PartialSum += *Source++;
PartialSum = (PartialSum >> 16) + (PartialSum & 0xffff);
}
return (USHORT)(((PartialSum >> 16) + PartialSum) & 0xffff);
}
|
|
|
Дата: Апр 7, 2004 22:24:39 volodya Не дзенный какой-то вариант ;-) |
|
|
Дата: Апр 7, 2004 22:45:19 В смысле? |
|
|
Дата: Апр 8, 2004 12:56:01 Ну его на board.win32asmcommunity.net не хвалили - большой и медленный. Кстати, в сорцах wine он тоже есть afaik. |
|
|
Дата: Апр 8, 2004 13:56:25 Не дзенный какой-то вариант ;-) Зато правильный, прямо "от производителя" :) |
|
|
Дата: Апр 9, 2004 14:01:46 Всем бальшое спасиба !!!! |
|
|
Дата: Июл 25, 2004 20:45:21 извините, но USHORT разве не 16 бит? АФАИР, PE.OptionalHeader.Checksum - DWORD.... |
|
|
Дата: Июл 26, 2004 05:54:36 DarkK извините, но USHORT разве не 16 бит? АФАИР, PE.OptionalHeader.Checksum - DWORD... Да 16 бит (2 байта). То что поле 32 бита еще ничего не значит. S_T_A_S_ расшифруй afaik plz. |
|
|
Дата: Июл 26, 2004 07:35:36 На сколько мне известно, это расшифровывается: As Far As I Know. Соответственно, АФАИР, вероятно, сокращение от "As Far As I Remember", но если мне не изменяет память, буржуи в таких случаях употребляют: IIRC - If I Recall Correctly ЗЫ Исходник-то из первых рук, там ошибки быть не может :) |
|
|
Дата: Июл 26, 2004 07:44:28 S_T_A_S_ Спасибо за поднятие скилла =) Исходник-то из первых рук, там ошибки быть не может :) Да, кстати насчет 32 бит, кто-нить видел exe'шник, в котором старшие 16 бит не нули? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.111 |