Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с кодом 
:(
    Опции темы
zedx
Дата 7.7.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



Есть примитивнейший код по дешифровке файла data ключом key:
Код

            unsigned int i, j;
    unsigned int keystart = 16;
    unsigned int keylen = 0x3f8;

    for (i = 0, j = 16; i < handle->datasize; i++) {
        handle->data[i] ^= handle->key[j + 8];
        j++;
        if (j % 8 == 0)
            j += 16;
        if (j >= keylen) {
            keystart = (keystart + 8) % 24;
            j = keystart;        }


немного не знаком с синтаксисом, поэтому подскажите:
 handle->data[i] ^= handle->key[j + 8] каждому значению data[i] присваивается значение key[j + 8] т.е. замена?
j++ это прибавляет к j 1 или 2?
j % 8 == 0 а это вообще не пойму что за условие, j/8=0?
в общем, не пинайте сильно smile

Это сообщение отредактировал(а) zedx - 7.7.2008, 10:13
PM MAIL   Вверх
SteN
Дата 7.7.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 4.9.2006
Где: Брянск

Репутация: нет
Всего: нет



a^=b; это  a = a^b;
j++;    это j = j+1;
a%b - остаток от деления a на b.
PM MAIL ICQ   Вверх
zedx
Дата 7.7.2008, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



a^b это, наверное, умножение?
a%8=0  -  т.е. деление без остатка?
тогда keystart = (keystart + 8) % 24 - целое от деления на 24?
PM MAIL   Вверх
bsa
Дата 7.7.2008, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



zedx, а "^" - это побитная операция XOR (исключающее "ИЛИ")

Добавлено через 2 минуты и 31 секунду
Цитата(zedx @ 7.7.2008,  10:26)
a%8=0  -  т.е. деление без остатка?
тогда keystart = (keystart + 8) % 24 - целое от деления на 24?

Код
if (a%8 == 0) {
  //сделать что-то если a кратно 8
}

keystart = (keystart + 8) % 24; //присвоить переменной keystart остаток от деления (keystart + 8) на 24

PM   Вверх
zedx
Дата 7.7.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 29.11.2007

Репутация: нет
Всего: нет



Спасибо за помощь.
Ушел портировать код на Delphi и проверять дешифровку smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0989 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.