1

В программном обеспечении, над которым я сейчас работаю, мы столкнулись со сценарием, в котором нам нужно указать, указано ли программное обеспечение в качестве программы запуска или нет.

Чтобы узнать, включена ли эта программа инструментом msconfig, я использовал ответ, предложенный этим вопросом.

Однако не все программы используют двоичное значение «02 00 00 00 ...», когда оно включено, мы встречаемся с тем, которое имеет значение «06 00 00 00 ...».

Чтобы понять это далее, я проанализировал оба сценария, прочитав значения реестра программного обеспечения перед их отключением, а затем:

  • Ожидаемый сценарий изменился с 02 00 00 00 00 00 00 00 00 00 00 00 на 03 00 00 00 17 79 BD 01 17 D9 D1 01 ;
  • Неожиданный сценарий изменился с 06 00 00 00 00 00 00 00 00 00 00 00 на 07 00 00 00 71 C9 33 AE 16 D9 D1 01

Я склонен полагать, что первый байт содержит правильный ответ. В обоих случаях бит 1 изменился с 0 на 1. Кажется, что этот бит содержит активное / неактивное значение. Но я все еще не совсем уверен.

Итак, мой вопрос: могу ли я предположить, что этот бит содержит правильное значение, или у кого-нибудь есть лучший ответ на это?

1 ответ1

0

На основании вашего примера кажется, что вам просто нужно установить 0-й бит (основанный на нуле) первого байта. Таким образом, по сути, просто добавьте 1 к первому шестнадцатеричному байту (или к наиболее правому клеву, если вам легче об этом думать), чтобы отключить (т.е. деактивировать приложение во время запуска).

Поэтому, если первый байт: X0, X2, X4 или X6, он становится X1, X3, X5 или X7, соответственно, где X - неважно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .