Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 22

Строка из массива байтов

18.07.2018, 10:21. Показов 2250. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!

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

Есть в коде массив байтов

Java
1
byte[] byteArray = new byte[] { 79, -109, -12, -23, -14, 15, -4 };
можно как-то узнать, что за строка там содержится?

Если делаю

Java
1
2
String value = new String(bytes, "UTF-8"); // или любая другая кодировка вместо "UTF-8" или вообще без нее
System.out.println(value);
то выводится всякая абра-кадабра...


Исходный код - это вирус под андроид. Хотелось примерно узнать его работу, куда он шлет смс, текст, сервер или ещё что-то... но в коде никакого внятного текста нет. В других вирусах были текстовые константы и более менее было понятно, что куда уходит, а тут ничего... Но во многих файлах заданы различные массивы данных, вот и подумала, что может в них скрыта какая-то полезная информация
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.07.2018, 10:21
Ответы с готовыми решениями:

Строка из массива байтов - пропадают 2 символа
Вычисление хеша SHA256 try { MessageDigest md = MessageDigest.getInstance("SHA-256"); byte bytes =...

Как получить файл из массива байтов?
подскажите, как получить файл из массива байтов?

ByteBuf запись и чтение массива байтов
Как можно в ByteBuf записать массив байтов и потом считать его? Я записываю: else if(obj instanceof byte) { ...

9
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
18.07.2018, 10:24
Цитата Сообщение от LaVie Посмотреть сообщение
можно как-то узнать, что за строка там содержится?
а ты уверена, что этот массив содержит именно строку? если так, то только наверное кодировку угадать, а лучше посмотри где этот массив далее используется и для чего.
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
18.07.2018, 11:44
Цитата Сообщение от LaVie Посмотреть сообщение
-109
закодированная чтоль, как-то хитро, что имеет минус?
0
0 / 0 / 0
Регистрация: 11.03.2014
Сообщений: 22
18.07.2018, 11:57  [ТС]
Welemir1

Не уверена, но интуитивно так кажется - должна же где-то в коде быть инфа о серверах, обработка текстов смс-сообщений и прочее. Может быть, конечно, что эта строка ещё как-то дополнительно зашифрована...

Нашла статью в инете, очень похоже на мой вариант
https://securelist.ru/the-most... ojan/3012/

Каждый класс имеет локальный метод-декриптор, который получает требуемую для расшифровки строку из локально объявленного массива байт. Все строки «спрятаны» в этот массив. Самые важные строки, содержащие адреса командного сервера, проходят дополнительный процесс расшифровки.
А вот к примеру один из классов, в котором есть массив байтов:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import com.swqkugrwjton.zuvpnjtctzrv.iaujbjh.bsiljy.WjTUKwLWO;
 
public class ei
  extends BroadcastReceiver
{
  private static int E = 225;
  protected static final String Q = fg.Q(WjTUKwLWO.class);
  private static final byte[] W = { 79, -109, -12, -23, -14, 15, -4 };
  
  public void onReceive(Context paramContext, Intent paramIntent)
  {
    paramIntent = paramIntent.getExtras();
    int k = 4;
    Object localObject = W;
    int m = 0;
    int n = 0;
    int j = 112;
    byte[] arrayOfByte = new byte[4];
    int i = k;
    if (localObject == null)
    {
      j = 4;
      int i1 = 112;
      i = n;
      m = k;
      k = i1;
    }
    for (;;)
    {
      n = m + 1;
      j = j + k + 2;
      m = i;
      i = n;
      arrayOfByte[m] = ((byte)j);
      n = m + 1;
      if (m == 3)
      {
        localObject = new String(arrayOfByte, 0);
        break;
      }
      k = localObject[i];
      m = i;
      i = n;
    }
    paramIntent = (Object[])paramIntent.get(((String)localObject).intern());
    localObject = new SmsMessage[paramIntent.length];
    i = 0;
    while (i < paramIntent.length)
    {
      localObject[i] = SmsMessage.createFromPdu((byte[])paramIntent[i]);
      i += 1;
    }
    new eh().Q(this, paramContext, (SmsMessage[])localObject);
  }
}
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
18.07.2018, 12:12
LaVie, сомнительно, чтобы кто нить, за так, захотел это сделать... среди фрилансеров, может быть, есть спецы по дешифровке, точно не могу сказать.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
18.07.2018, 12:58
Цитата Сообщение от Aviz__ Посмотреть сообщение
закодированная чтоль, как-то хитро, что имеет минус?
Байты в Java знаковые, что удивительного в минусе?
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
18.07.2018, 13:04
Цитата Сообщение от korvin_ Посмотреть сообщение
знаковые
и символы тоже, бывают с минусом))?!
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
19.07.2018, 08:44
Цитата Сообщение от Aviz__ Посмотреть сообщение
и символы тоже, бывают с минусом))?!
байты в java знаковые, индекс в кодировке тоже байтовый, но беззнаковый. поэтому все символы с индексом более 127 - отрицательной число в представлении знаковых байтов java
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
19.07.2018, 08:50
LeX, спасибо, но с ч/ю у меня норма
0
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 182
25.07.2018, 14:34
LaVie,

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.07.2018, 14:34
Помогаю со студенческими работами здесь

Как получить hexidecimal string из массива байтов?
21

Использование объекта типа String как промежуточного для передачи массива байтов
Проблема заключается в следующем - нужно, имея массив byte, в который считываются байты сгенеренного файла .xls передать через n-ное кол-во...

Чтение массива байтов (сервер-клиент)
Всем привет. Столкнулся вот с такой задачей. В общем есть клиент-серверное приложение. Сервер отсылает данные клиенту через сокет, также...

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

Строка байтов
Здравстуйте, у меня есть String с байтами. Как мне преобразовать это в текст? b = str(&quot;\u0412\u043b&quot;)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru