Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Наставьте на путь истинный

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 06.04.2012, 18:01   #31
 Сержант
Аватар для whoami
 
whoami на правильном путиwhoami на правильном пути
Регистрация: 07.09.2010
Сообщений: 124
Популярность: 147
Сказал(а) спасибо: 22
Поблагодарили 87 раз(а) в 18 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Именно так. DLL можно внедрять и совсем без exe-загрузчика.
  Ответить с цитированием
Старый 06.04.2012, 19:30   #32
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Да, и окно своё создать можно.
Но это относится к сложностям ;D
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 10.04.2012, 19:09   #33
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Всё, я в истерике блин. Это закон подлости такой? Отчего клиент глючить начинает? Сидишь, минут 20 наблюдаешь - всё ОК. Только отошёл, всё крахом. На инжекты не реагирует, половина текстур начинают белыми становиться. Задержки ставил такие, что бот тупит по 5 секунд перед сбором очередной кучки. Полный ступор и непонимание.

Добавлено через 9 минут
Как узнать длину функции, если в ней присутствует ещё что-либо кроме ASM?
Например:
Код:
void __stdcall SendPacket_THREAD(PACKET* pack)
{
  DWORD Function = F_SEND_PACKET;
  DWORD len = pack->len;
  BYTE Packet[40];
  for (int i=0; i<pack->len; i++)
  Packet[i]=pack->Bytes[i];
  BYTE* Pointer=Packet;

  __asm
  {
     mov ecx, dword ptr [BA]
     mov ecx, dword ptr [ecx+0x20]
     push len
     push Pointer
     call Function
  }
}
Или можно ли как-нибудь стопануть основной поток клиента на время выполнения потока инжектируемой функции?

Последний раз редактировалось dwa83; 10.04.2012 в 19:20. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 11.04.2012, 10:47   #34
 Сержант
Аватар для whoami
 
whoami на правильном путиwhoami на правильном пути
Регистрация: 07.09.2010
Сообщений: 124
Популярность: 147
Сказал(а) спасибо: 22
Поблагодарили 87 раз(а) в 18 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Пишите функции на чистом ассемблере. Это совсем не сложно.
Стопать потоки клиента можно, но так никто не делает (будет тормозить).
  Ответить с цитированием
Старый 11.04.2012, 14:55   #35
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

dwa83, могу предложить способ найти свою функцию.
Простой, но эффективный. Заключается в следующем:
1) Ставим самой первой строкой функции команду типа PUSH 0x12345678.
2) Ищем эту такую команду в отладчике.
3) Смотрим вверх до первого NOP. Здесь будет начало функции (не включая NOP).
4) Смотрим вниз до первого NOP. Над NOP должна быть команда RET (или RETN).
Всё, байты, находящиеся между NOP'ами из 3 и 4 пунктов - код функции.
Ах да, потом нашу добавленную команду PUSH стоит удалить, а адрес функции запомнить, чтобы проверять, как она там.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 11.04.2012, 15:39   #36
 Сержант
Аватар для whoami
 
whoami на правильном путиwhoami на правильном пути
Регистрация: 07.09.2010
Сообщений: 124
Популярность: 147
Сказал(а) спасибо: 22
Поблагодарили 87 раз(а) в 18 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Я вот ещё что скажу, почему очень не рекомендую свои С-шные функции инжектить. Там компилятор может добавлять всевозможные обвязки (рантайм проверки, обработчики всяких нехороших ситуаций и т.д.), которые в элементе скорее всего работать не будут, а будут делать хрен знает что. В лучшем случае

Вот, например, реальный код (подцепился отладчиком, посмотрел).
Код:
0425548F  int         3    
---  -----------
void <skiped>(void*) 
{
04255490  push        ebp  
04255491  mov         ebp,esp 
04255493  push        0FFFFFFFFh 
04255495  push        offset __ehhandler$? <skipped> (42E4901h) 
0425549A  mov         eax,dword ptr fs:[00000000h] 
042554A0  push        eax  
042554A1  sub         esp,91Ch 
042554A7  mov         eax,dword ptr [___security_cookie (433AA4Ch)] 
042554AC  xor         eax,ebp 
042554AE  mov         dword ptr [ebp-64h],eax 
042554B1  push        eax  
042554B2  lea         eax,[ebp-0Ch] 
042554B5  mov         dword ptr fs:[00000000h],eax 
<skipped>
0425570E  mov         ecx,dword ptr [ebp-0Ch] 
04255711  mov         dword ptr fs:[0],ecx 
04255718  pop         ecx  
04255719  mov         ecx,dword ptr [ebp-64h] 
0425571C  xor         ecx,ebp 
0425571E  call        __security_check_cookie (428E9C1h) 
04255723  mov         esp,ebp 
04255725  pop         ebp  
04255726  ret              
--- No source file -------------------------------------------------------------
вот последний call точно обрушит процесс
  Ответить с цитированием
Старый 11.04.2012, 18:25   #37
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Цитата:
Сообщение от whoamiПосмотреть сообщение
Там компилятор может добавлять всевозможные обвязки (рантайм проверки, обработчики всяких нехороших ситуаций и т.д.)

Хмм, не подумал об этом, надо бы поковыряться в настройках компилятора.

Спасибо, попробую эти предложения, хорошо что хоть есть за что уцепиться чтобы косяк найти)

Добавлено через 1 час 13 минут
BritishColonist, Способом указанным вами мне почему-то не удаётся найти подобную строчку. Причём, если эту строчку вставлять в функцию-член класса, то находит. А функции для инжекта у меня указаны как независимые ни от чего отдельные функции, и в них почему-то не находит..

Пока что на пробу поставил в компиляторе режим Release(и без рунтайм библиотек и без отладочной инфы). Сейчас тестится. Так же пробую тестить не запуская из среды. Может при запуске из среды тоже что-то отладочное в функции прописывается..

Добавлено через 3 часа 30 минут
Пытаюсь записать функцию полностью на ассемблере с целью инжектить её просто в виде кода. Попробовал на примере:
Код:
void __stdcall SendPacket_THREAD(PACKET* pack)
{
  DWORD len = pack->len;
  BYTE* Pointer=pack->Bytes;
  __asm
  {
     mov ecx, dword ptr [BA]
     mov ecx, dword ptr [ecx+0x20]
     push len
     push Pointer
     mov eax, F_SEND_PACKET
     call eax
  }
}
__stdcall означает что наша функция получает параметры через стек. У нас 1 параметр - указатель на структуру(адрес структуры). Значит надо в функции получить его из стека. В структуре 4 первые байта - это параметр len, всё остальное - это данные пакета. Я пробую сделать так:
Код:
void __stdcall SendPacket_THREAD(PACKET* pack)
{
  __asm
  {
     mov ecx, dword ptr [BA]
     mov ecx, dword ptr [ecx+0x20]
     pop eax
     mov ebx, dword ptr [eax]
     push ebx
     add eax, 0x4
     push eax
     mov eax, F_SEND_PACKET
     call eax
     ret
  }
}
Вылетает. Что не так?

Добавлено через 4 часа 22 минуты
Ничего не понимаю.. Почему компилятор коверкает мою функцию? Оптимизацию вообще отключил..

Ясно пишу
Код:
void __stdcall SendPacket_THREAD()
{
  //DWORD len = pack->len;
  //BYTE* Pointer=pack->Bytes;
  __asm
  {
     mov edx,0  // будет заноситься адрес параметров
     mov ecx, dword ptr [BA]
     mov ecx, dword ptr [ecx+0x20]
     mov eax,[edx]
     push eax    // len
     add edx,4
     push edx
     mov eax, F_SEND_PACKET
     call eax
  }
}
В итоге Olly показывает
Код:
CPU Disasm
Address   Hex dump          Command                                  Comments
00401A87  /.  0D 047AB200   OR EAX,00B27A04
00401A8C  |.  8B49 20       MOV ECX,DWORD PTR DS:[ECX+20]
00401A8F  |.  8B02          MOV EAX,DWORD PTR DS:[EDX]
00401A91  |.  50            PUSH EAX
00401A92  |.  83C2 04       ADD EDX,4
00401A95  |.  52            PUSH EDX
00401A96  |.  B8 B0376700   MOV EAX,6737B0
00401A9B  |.  FFD0          CALL EAX
00401A9D  |.  5B            POP EBX
00401A9E  \.  C3            RETN
Добавлено через 7 часов 4 минуты
Пока что бот полчаса или час работает без зависов и появления артефактов. Судя по всему решение проблемы я нашёл. Если через минут 20-30 не повиснет, то теперь точно стало ясно откуда такие странные глюки клиента. Судя по всему дело не в отсутствии задержек и частых вызовах инжектов(хотя это и влияло на длительность работы без ошибок), и даже не в конфликте потоков, обращающихся одновременно к одним данным. Обвязка компилятором кода различной белибердой тоже не причина(проверял дизасм - там всё лаконично, хоть и не так как я хотел видеть). Оказывается просто напросто со временем происходила порча стека(не переполнение а наоборот) и он начинал показывать на нужные клиенту данные портя их. Это произошло вследствии использования протокола функций __stdcall без знания того, что это вообще такое. Тоесть все инжектируемые функции обязывались "почистить" за собой стек, что они и делали. Но вызывающий код использовал другой протокол обмена параметрами в функциях(в настройках проекта совсем не stdcall выставлен был). В итоге вызывающий код после выполнения инжекта ещё раз чистил уже чищеный стек. Убрал все stdkall перед фуекциями, давая тем самым компилятору использовать для вызываемой и вызывабщей функции один протокол обмена параметрами и всё

Добавлено через 20 часов 45 минут
Похоже я ошибся( глюки всё равно вылазят спустя какое то время, но не пропали( всё, вообще не понимаю что к чему..

Последний раз редактировалось dwa83; 12.04.2012 в 15:10. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 12.04.2012, 19:38   #38
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Пытаюсь, как было замечено в недостатках, оптимизировать.

Переделал инжектор чтобы он инжектил просто массив кода. Всё ли тут верно и нужно ли что-то поменять\добавить\убавить?

Код:
BYTE INJECTOR::InjectAndExecute2(void *Func, int len)
{
  HANDLE hProcThread;
  void* pFunction;

  pFunction = VirtualAllocEx(hProcess,NULL,len,MEM_COMMIT,PAGE_READWRITE);
  WriteProcessMemory(hProcess,pFunction,Func,len,NULL);
  hProcThread = CreateRemoteThread(hProcess,NULL,NULL,(LPTHREAD_START_ROUTINE)pFunction,NULL,NULL,NULL);
  if(hProcThread==INVALID_HANDLE_VALUE) // íå óäàëîñü ñîçäàòü ïîòîê
  {
    VirtualFreeEx(hProcess,pFunction,len,MEM_RELEASE);
    return 0;
  }

  WaitForSingleObject(hProcThread,INFINITE); // îæèäàåì çàâåðøåíèÿ ðàáîòû ïîòîêà
  CloseHandle(hProcThread); // îñâîáîæäàåì ïàìÿòü
  VirtualFreeEx(hProcess,pFunction,len,MEM_RELEASE); // ñòèðàåì èç ïðîöåññà íàøó ôóíêöèþ
  return 1;	// óñïåøíàÿ èíúåêöèÿ è âûïîëíåíèå êîäà
}
и инжектируемая функция
Код:
void INJECTOR::targetmob(DWORD wid)
{
  char fdata[28]="\xBF\x00\x00\x00\x00\xBB\x00\x00\x00\x00\xA1\x00\x00\x00\x00\x57\x8B\x48\x20\x81\xC1\xEC\x00\x00\x00\xFF\xD3\xC3";
  DWORD func=F_TARGET;
  DWORD ba=BA;
  memcpy(fdata+1,&wid,4);
  memcpy(fdata+6,&func,4);
  memcpy(fdata+11,&ba,4);
  InjectAndExecute2(&fdata,28);
}
  Ответить с цитированием
Старый 12.04.2012, 21:49   #39
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

stdcall - соглашение о передаче параметров. Вроде бы stdcall указывает, что порядок параметров обратный. Мы об этом вообще не задумываемся, т.к. нам эти параметры самостоятельно из стека вынимать не надо, к ним мы обращаемся просто по имени соответствующей переменной. Так что никаких pop в асме быть не должно, если это не предусмотрено инжектом.
Вряд ли дело в компиляторе, т.к. лично я никаких специальных настроек не делаю (даже если меняю конфигурацию (Debug или Release), это не вызывает никаких изменений результирующего кода ассемблера).

И в инжектах можно использовать любой код C++, можно объявлять новые переменные и т.д.
Главное - не ссылаться на то, что находится за пределами видимости данной функции.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 13.04.2012, 01:09   #40
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Цитата:
Сообщение от BritishColonistПосмотреть сообщение
Вроде бы stdcall указывает, что порядок параметров обратный

не только это, но ещё и говорит о том, что параметры передаются через стек, а так же о том, что вызывающий код не будет чистить стек, а вызываемая функция сама должна это сделать. У меня в настройках проекта стояло cdecl - Аргументы передаются через стек, но очистку стека производит вызывающая программа. А, для примера, в соглашении fastcall вообще стек не нужен, так как через регистры передача параметров. Так что не только в порядке параметров тут дело
Но это не важно. Я вот проблему свою не знаю как решить( Сейчас все инжекты переделал, инжекчу напрямик массив кода, как посоветовали. Перед инжектом прямо в код параметры пишу, чтобы функции вообще без параметров были. Этим исключил всякие обвязки кода и тд. Проблема не исчезла. Я грешу на неправильность написания мной некорорых самонайденных инжектов, может в асме что-то пропустил перед вызовом. Заменил их всех на пакеты. Посмотрю что будет теперь..

Всё равно виснет( полчаса работы и потом виснет.. короче мне не понять..

Последний раз редактировалось dwa83; 13.04.2012 в 03:35.
  Ответить с цитированием
Старый 13.04.2012, 12:03   #41
 Сержант
Аватар для whoami
 
whoami на правильном путиwhoami на правильном пути
Регистрация: 07.09.2010
Сообщений: 124
Популярность: 147
Сказал(а) спасибо: 22
Поблагодарили 87 раз(а) в 18 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

а ты pusha/popa делаешь?
  Ответить с цитированием
Старый 13.04.2012, 13:55   #42
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Да, но сначала не ставил, потом, когда глюки начали проявляться, везде расставил, не помогло. Хотя сейчас, когда инжектится готовый массив кода, он их в себя не включает, сейчас расставлю снова попробую.
  Ответить с цитированием
Старый 13.04.2012, 14:05   #43
 Сержант
Аватар для whoami
 
whoami на правильном путиwhoami на правильном пути
Регистрация: 07.09.2010
Сообщений: 124
Популярность: 147
Сказал(а) спасибо: 22
Поблагодарили 87 раз(а) в 18 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Вообще, возьми код из PWFramework, вместе с инжектами, там всё 100% работающее. Я думаю, перевести с c# на C++ будет не сложно.
  Ответить с цитированием
Старый 13.04.2012, 14:34   #44
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Сейчас расставил пока что во всех функциях(которые не пакетами) 0x60 (PUSHAD) и в конце перед RETN 0x61(POPAD), снова запустил, проверяю. Если опять выскочит неполадка, полезу фреймворк ковырять.

На всякий случай вод весь код инжектора, может посмотрите, кому не лень. Вдруг где ошибка.
ИНЖЕКТОР


Кстати, половина функций закомментировано /* */, но форум это не показывает

Добавлено через 7 часов 20 минут
Посмотрел я фреймворк для c#, всё совершенно равнозначно, кроме одного. Автор перед каждым инжектом открывает доступ к процессу, а после закрывает
Код:
       // Получаем дескриптор процесса, выбранного клиента PW и открываем память для чтения / записи
            if (window != null) MemoryManager.OpenProcess(window.ProcessId);

            // Отправляем пакет на медитацию
            SendPacket(MemoryManager.OpenProcessHandle, new byte[] { 0x2e, 0x00 });

            // Закрываем дескриптор процесса
            MemoryManager.CloseProcess();
У мнея же процесс открывается один раз вначале подключения бота к клиенту и закрывается по окончанию работы. Может в этом моя ошибка, и во время работы бота у процесса клиента меняется пид или хэндл или ещё что? Сделаю как у автора PWFramework. Если не поможет, наверное единственным выходом будет признать полную свою криворукость, сойти с ума, забиться в угол, изредка подрыгивая ногой)))

Добавлено через 19 часов 58 минут
Переделал всё нафиг, полностью) Теперь в главном модуле достаточно обьявить структуру типа BOT bot и с помощью неё делать всё что угодно, например:
bot.client.init(); // поиск-нашего процесса и инициализация некоторых параметров
int HP = bot.client.get.myHP(); // так слизываются все значения с клиента
bot.client.inject.TargetMob();

так же переделал нафиг всю логику. теперь можно просто включить режим
bot.st.action=A_SWITCHER
и этот режим в зависимости от полученых с клиента данных переключает различные режимы в зависимости от приоритета.

например, внутри режима свитчера идёт сохранение в специально созданный для этого стек значения текущего режима и может быть включен другой типа
bot.st.push(); // сохранили режим в стек, чтобы по окончанию следующего вернуться в этот
bot.st.action=A_GOTO_FARM; // включает режим перемещения к точке фарма(из него идёт переключение на другие режимы в зависимости от ситуации, например режим всплытия, взлёта, и возврат к предыдущему режиму)

по окончании действия можно вернуться в предыдущий режим, даже не зная какой он был, просто указав
bot.st.pop();
В итоге бот ведёт себя нелинейно, и выбирает действия по мере требования а не по какому либо порядку.

PS: А клиен как переставал реагировать, так и перестаёт Так и выходит, что получилось то всё неплохо, но бесполезно

Последний раз редактировалось dwa83; 14.04.2012 в 10:33. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 15.04.2012, 06:10   #45
 Пехотинец
Аватар для dwa83
 
dwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личностьdwa83 определенно авторитетная личность
Регистрация: 21.03.2012
Сообщений: 83
Популярность: 1178
Сказал(а) спасибо: 18
Поблагодарили 101 раз(а) в 53 сообщениях
 
По умолчанию Re: Наставьте на путь истинный

Цитата:
Сообщение от whoamiПосмотреть сообщение
на каждый вызов делать VirtualAllocEx

Дурная моя голова и слепые глаза
Моя невнимательность меня подводит. Проблема заключалась в том, что я при каждом инжекте так и делал, но после определённого промежутка времени (20-30мин) VirtualAllocEx начинала отказы в выделении памяти. А, ввиду того, что проверок на ошибки в коде нет вообще, инжект писался хз куда, в NULL. Плюс к этому дальше шло ещё и освобождение памяти по NULL, итого вообще полный ппц. Теперь сделал выделение памяти один раз, при инициализации. Пока что работает вроде бы, но с моей внимательностью может ещё что всплывёт.

Последний раз редактировалось dwa83; 15.04.2012 в 06:13.
  Ответить с цитированием
Ответ


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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] Путь к генералу The_Feragamo Общение и обсуждение, архив Point Blank 8 05.10.2011 03:20
Путь Императора Touya25 Прочее 0 12.09.2011 22:43
[Статья] Как качнуть акк в 2 kirya_96 Cross Fire 4 03.03.2011 20:53
Путь ПК :) MostFire Статьи и описания по Lineage 2 11 29.06.2010 16:03

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net