Сейчас на форуме: tyns777 (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Структура IMAGE_FILE_HEADER. Значение поля Characteristics.
Посл.ответ Сообщение

Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 24 августа 2019 10:21
· Личное сообщение · #1

Может быть кто нибудь в курсе такого вопроса. В поле Characteristics заносится сумма установленных флагов.
А вот как на основании этой суммы определить какие именно флаги выставлены?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 24 августа 2019 10:24
· Личное сообщение · #2

Это ж побитовые флаги.



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 24 августа 2019 10:30
· Личное сообщение · #3

Archer пишет:
Это ж побитовые флаги.
Я просто не пойму есть значение к примеру 010F как теперь получить эти флаги?




Ранг: 71.5 (постоянный), 95thx
Активность: 0.10.38
Статус: Участник

Создано: 24 августа 2019 10:55 · Поправил: BlackCode
· Личное сообщение · #4

zombi-vadim
Самое простое, установи CFF Explorer
Там есть меню...



А там разберешься



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 24 августа 2019 11:00 · Поправил: zombi-vadim
· Личное сообщение · #5

BlackCode пишет:
установи

BlackCode пишет:
А там разберешьс
Вот я и пытаюсь разобраться. Сумма комбинации 15ти флагов. Мне что как в кодовом замке их перебирать?Как программа определяет эту комбинацию? По какой то формуле?



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 24 августа 2019 11:04
· Личное сообщение · #6

Лентяи!

Code:
  1. IMAGE_FILE_RELOCS_STRIPPED
  2. 0x0001
  3.  
  4.          Relocation information was stripped from the file. The file must be loaded at its preferred base address. If the base address is not available, the loader reports an error.
  5.  
  6. IMAGE_FILE_EXECUTABLE_IMAGE
  7. 0x0002
  8.  
  9.          The file is executable (there are no unresolved external references).
  10.  
  11. IMAGE_FILE_LINE_NUMS_STRIPPED
  12. 0x0004
  13.  
  14.          COFF line numbers were stripped from the file.
  15.  
  16. IMAGE_FILE_LOCAL_SYMS_STRIPPED
  17. 0x0008
  18.  
  19.          COFF symbol table entries were stripped from file.
  20.  
  21. IMAGE_FILE_AGGRESIVE_WS_TRIM
  22. 0x0010
  23.  
  24.          Aggressively trim the working set. This value is obsolete.
  25.  
  26. IMAGE_FILE_LARGE_ADDRESS_AWARE
  27. 0x0020
  28.  
  29.          The application can handle addresses larger than 2 GB.
  30.  
  31. IMAGE_FILE_BYTES_REVERSED_LO
  32. 0x0080
  33.  
  34.          The bytes of the word are reversed. This flag is obsolete.
  35.  
  36. IMAGE_FILE_32BIT_MACHINE
  37. 0x0100
  38.  
  39.          The computer supports 32-bit words.
  40.  
  41. IMAGE_FILE_DEBUG_STRIPPED
  42. 0x0200
  43.  
  44.          Debugging information was removed and stored separately in another file.
  45.  
  46. IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
  47. 0x0400
  48.  
  49.          If the image is on removable media, copy it to and run it from the swap file.
  50.  
  51. IMAGE_FILE_NET_RUN_FROM_SWAP
  52. 0x0800
  53.  
  54.          If the image is on the network, copy it to and run it from the swap file.
  55.  
  56. IMAGE_FILE_SYSTEM
  57. 0x1000
  58.  
  59.          The image is a system file.
  60.  
  61. IMAGE_FILE_DLL
  62. 0x2000
  63.  
  64.          The image is a DLL file. While it is an executable file, it cannot be run directly.
  65.  
  66. IMAGE_FILE_UP_SYSTEM_ONLY
  67. 0x4000
  68.  
  69.          The file should be run only on a uniprocessor computer.
  70.  
  71. IMAGE_FILE_BYTES_REVERSED_HI
  72. 0x8000


| Сообщение посчитали полезным: BlackCode


Ранг: 71.5 (постоянный), 95thx
Активность: 0.10.38
Статус: Участник

Создано: 24 августа 2019 11:07
· Личное сообщение · #7

zombi-vadim
Что сложного? Установленная галочка - это взведенный флаг в TRUE.
Название всех флагов присутствует.
010F введи в поле Value и открой меню Characteristics и увидишь какие флаги установлены.

Добавлено спустя 1 минуту
TryAga1n пишет:
Лентяи!

Абсолютный



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 24 августа 2019 11:10
· Личное сообщение · #8

TryAga1n пишет:

Лентяи
Z Я видел эти значения. Но не могу догнать как мне их получить из общей суммы.

Добавлено спустя 1 минуту
BlackCode пишет:
и увидишь какие флаги установлены.
Мне не надо в какой то программе их увидеть я хочу понять как самому их вычислить.

Добавлено спустя 16 минут
BlackCodeСумма флагов 0x8000. 0x4000.0x2000 равна значению E000. Это понятно. Как мне сделать обратное вычисление? Вычитать все возможные флаги из суммы или есть какой то понятный простой способ?



Ранг: 1.2 (гость), 2thx
Активность: 0=0
Статус: Участник

Создано: 24 августа 2019 11:44
· Личное сообщение · #9

Смотри побитовые операции. Говорят же тебе, это биты.




Ранг: 71.5 (постоянный), 95thx
Активность: 0.10.38
Статус: Участник

Создано: 24 августа 2019 11:49
· Личное сообщение · #10

zombi-vadim
Во первых сложения здесь никакого нет!
Логическая OR
0x8000 OR 0x4000 OR 0x2000 == 0xE000
Обратная логическая XOR.
Здесь работа с битами.



Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 24 августа 2019 11:55
· Личное сообщение · #11

BlackCodeА как мне програмно на С++ это записать? 0xE000 = ? Извините я слабо разбираюсь в битовых операциях..




Ранг: 71.5 (постоянный), 95thx
Активность: 0.10.38
Статус: Участник

Создано: 24 августа 2019 12:02 · Поправил: BlackCode
· Личное сообщение · #12

zombi-vadim пишет:
А как мне програмно на С++ это записать? 0xE000 = ? Извините я слабо разбираюсь в битовых операциях..

Это элементарные знания, которые вы обязаны знать!
Вас в гугле забанили? --> Link <--

| Сообщение посчитали полезным: zombi-vadim


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 24 августа 2019 16:05
· Личное сообщение · #13

Как можно писать на си, не зная даже логических операций, логики и систем счисления

-----
vx




Ранг: 16.3 (новичок), 2thx
Активность: 0.150.22
Статус: Участник

Создано: 24 августа 2019 16:43
· Личное сообщение · #14

BlackCodeСпасибо что направили в нужное направление.Я почему то не мог понять как извлечь флаги.Все оказалось элементарно.Огромное спасибо всем за помощь.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 24 августа 2019 21:28
· Личное сообщение · #15

zombi-vadim пишет:
Все оказалось элементарно


Начинай с азов. С такими знаниями, как у тебя сейчас, ты будешь спотыкаться на каждом шагу, особенно учитывая, что ты сообразил только после 12-го поста в теме.

Закрыто.

-----
EnJoy!


| Сообщение посчитали полезным: BlackCode
 eXeL@B —› Вопросы новичков —› Структура IMAGE_FILE_HEADER. Значение поля Characteristics.
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати