Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.12.2011, 10:28
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 11  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Если честно, то менять переменные в памяти флеша - это ну как-то не самое простое занятие, гораздо проще подменить их в теле запроса отправляемого на сервер. Вы уверены, что злоумышленник именно предполагаемым способом фальсифицирует информацию?
__________________
Hell is the possibility of sanity

Старый 11.12.2011, 12:42
Андрей911 вне форума Посмотреть профиль Отправить личное сообщение для Андрей911 Найти все сообщения от Андрей911
  № 12  
Ответить с цитированием
Андрей911
 
Аватар для Андрей911

Регистрация: Jun 2011
Сообщений: 127
Цитата:
Сообщение от kackbip Посмотреть сообщение
Наоборот... это полнейший бесполезняк. Если читер одну переменную подменит то и другую тоже подменит.
А как, например, их можно подменить одновременно? В памяти числа хранятся в закодированном виде Закодированные они разные, например 9 - это 796647442 или 197414030 или еще что-то. При каждой записи Encoder меняется. Использую для кодирования очков вот этот класс. Сравнение и перекодировка 15 раз в секунду. Как их можно подменить одновременно?
Код AS3:
/**
* MochiServices
* Connection class for all MochiAds Remote Services
* @author Mochi Media
*/
 
package mochi.as3
{
    final public class MochiDigits
    {
        private var Fragment:Number;
        private var Sibling:MochiDigits;
        private var Encoder:Number;
 
        /**
         * Method: MochiDigits
         * Construct and initialize the value of a MochiDigit
         * @param   digit: initialization value
         * @param   index: internal use only
         */
        public function MochiDigits( digit:Number = 0, index:uint = 0 ):void
        {
            Encoder = 0;
            setValue( digit, index );
        }
 
        public function get value():Number
        {
            return Number(this.toString());
        }
 
        public function set value(v:Number):void
        {
            setValue( v );
        }
 
        /**
         * Method: add
         * Increments the stored value by a specified amount
         * @param   inc: Value to add to the stored variable
         */
        public function addValue(inc:Number):void
        {
            value += inc;
        }
 
        /**
         * Method: setValue
         * Resets the stored value
         * @param   digit: initialization value
         * @param   index: internal use only
         */
        public function setValue( digit:Number = 0, index:uint = 0 ):void
        {
            var s:String = digit.toString();
            Fragment = s.charCodeAt(index++) ^ Encoder;
 
            if( index < s.length )
                Sibling = new MochiDigits(digit,index);
            else
                Sibling = null;
 
            reencode();
        }
 
        /**
         * Method: reencode
         * Reencodes the stored number without changing its value
         */
        public function reencode():void
        {
            var newEncode:uint = int(0x7FFFFFFF * Math.random());
 
            Fragment ^= newEncode ^ Encoder;
            Encoder = newEncode;
        }
 
        /**
         * Method: toString
         * Returns the stored number as a formatted string
         */
        public function toString():String
        {
            var s:String = String.fromCharCode(Fragment ^ Encoder);
 
            if( Sibling != null)
                s += Sibling.toString();
 
            return s;
        }
    }
}
Добавлено через 8 минут
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Если честно, то менять переменные в памяти флеша - это ну как-то не самое простое занятие, гораздо проще подменить их в теле запроса отправляемого на сервер. Вы уверены, что злоумышленник именно предполагаемым способом фальсифицирует информацию?
А я не уверен. Просто периодически замечаю что есть накрутка - в игре считается очки и уровни, время игры, заходы. И бывает либо уровень слабоват, а очков явный перебор, либо высокий уровень и мало очков, либо заходов 12 000 в день (явно на автомате). А как эти цифры там появляются разобраться не могу.

Старый 11.12.2011, 20:21
smithy вне форума Посмотреть профиль Отправить личное сообщение для smithy Найти все сообщения от smithy
  № 13  
Ответить с цитированием
smithy

Регистрация: Oct 2011
Адрес: Питер
Сообщений: 58
Цитата:
это далеко не так.
почему?

Старый 12.12.2011, 01:01
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 14  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Да есть же нормальные криптографические алгоритмы и реализации, и для двунаправленного шифрования в том числе, зачем вам велосипед с квадратными колесами?
Но, опять же, защищать программу саму от себя звучит как-то... непонятно. Есть смысл защищать клиентские данные от сервера, или сервер от клиента, но таким образом, как вы это предлагаете сделать, вы ничего не добъетесь, ну только запутаете, еще не известно кого больше, себя или злоумышленника.
Обычно обфускации хватает для того, чтобы свести к минимуму попытки безхитростного взлома. Но вот защитить полностью в такой ситуации не возможно.
__________________
Hell is the possibility of sanity

Старый 12.12.2011, 12:22
Newred вне форума Посмотреть профиль Отправить личное сообщение для Newred Посетить домашнюю страницу Newred Найти все сообщения от Newred
  № 15  
Ответить с цитированием
Newred
 
Аватар для Newred

Регистрация: May 2010
Адрес: Киев, Украина
Сообщений: 140
Записей в блоге: 2
Не раз пользовался арт-мани, и вам советую изучить принцип работы этой хорошей программы. "Врага" нужно знать в лицо. Увидев недостатки, можна строить защиту.
По запросам: Никто не мешает проверить на сервере "а не пришло ли 100500 одинаковых запросов от одного юзера" и соответственно наградить!


Последний раз редактировалось Newred; 12.12.2011 в 12:25.
Создать новую тему Ответ Часовой пояс GMT +4, время: 00:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:31.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.