Страница: 1 |
Страница: 1 |
Вопрос: Различие 32-bit от 16-bit
Добавлено: 01.04.06 16:18
Автор вопроса: Vilya | Web-сайт:
Как программно отличить 32-битное приложение от 16-битного???
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
BUG(O)R
ICQ: 827887
Вопросов: 13
Ответов: 142
Web-сайт:
Профиль | | #1
Добавлено: 01.04.06 17:32
В PE файле после DOS-MZ загововка идёт Dos-stub, там есть поле e_lfanew(подробнее смотри структуру IMAGE_DOS_HEADER) оно указывает на PE-заголовок(смотри структуру IMAGE_NT_HEADERS), вот этот заговок, если файл является win32 приложением , должен начинаться так: &H4550, т.е. "PE". Если он так не начинается, то файл не является 32 битным приложением.
Если пример нужен говори, соберу
Номер ответа: 2
Автор ответа:
Vilya
ICQ: 232995216
Вопросов: 12
Ответов: 63
Web-сайт:
Профиль | | #2
Добавлено: 03.04.06 03:57
Почти нифига непонял
Дай примерчик плиз
vit-sh@yandex.ru
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 03.04.06 13:00
может просще бинарно считать файл и посмотреть наличие "This program must be run under Win32"
Номер ответа: 4
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #4
Добавлено: 03.04.06 16:14
Open "C:\upx.exe" For Binary Access Read As #1
Get #1, 79, s
Close #1
If Left$(s, Len("This program cannot be run in DOS mode.") = "This program cannot be run in DOS mode." Then
MsgBox "32 bit"
Else
MsgBox "16 bit"
End If
Номер ответа: 5
Автор ответа:
Vilya
ICQ: 232995216
Вопросов: 12
Ответов: 63
Web-сайт:
Профиль | | #5
Добавлено: 04.04.06 13:50
Большое спасибо