Показать сообщение отдельно
Непрочитано 18.08.2012, 15:00   #1
Пользователь

Автор темы (Топик Стартер) Интересует алгоритм Opcode Obfuscator-а

Кто то в курсе, алгоритм построения таблицы для обфускатора в клиенте одинаков для разных хроник? У меня периодически проскакивает ошибка, тоесть обфускатор на сервере не правильно декодирует значение при id == 0xD0

PHP код:
private void prepare(int obfKey
    {
        
_obfKey obfKey;
        
int l 0;
        
m_decodeTable1 = new int[0xD0 1];
        
m_decodeTable2 = new int[0x83 1];
        for (
int i 0<= 0xD0; ++i
            
m_decodeTable1[i] = i;
        for (
int i 0<= 0x83; ++i)
            
m_decodeTable2[i] = i;
        
pseudo_rand_seed(obfKey);
        for (
int i 1<= 0xD0; ++i
        {
            
int k pseudo_rand() % (1);
            
int j m_decodeTable1[k];
            
m_decodeTable1[k] = m_decodeTable1[i];
            
m_decodeTable1[i] = j;
        }
        for (
int i 1<= 0x83; ++i
        {
            
int k pseudo_rand() % (1);
            
int j m_decodeTable2[k];
            
m_decodeTable2[k] = m_decodeTable2[i];
            
m_decodeTable2[i] = j;
        }
        for (
0m_decodeTable1[l] != 0x12l++);
        
int j m_decodeTable1[0x12];
        
m_decodeTable1[0x12] = 0x12;
        
m_decodeTable1[l] = j;
        for (
0m_decodeTable1[l] != 0xB1l++);
        
int d m_decodeTable1[0xB1];
        
m_decodeTable1[0xB1] = 0xB1;
        
m_decodeTable1[l] = d;
        
m_decodeTable1[0xD0] = 0xD0;
        
m_decodeTable1[0x11] = 0x11;
        
m_enabled true;
    } 
Смущают строки вроде:
m_decodeTable1[0xD0] = 0xD0;

Но если их закомментировать все равно в таблице остается неверное значение.

Где бы почитать про алгоритм обфускации в клиенте, можно ли его там изменит на свой, какая dll и функция за это отвечает?
flopix вне форума Ответить с цитированием