Сейчас на форуме: laslo, UniSoft, bartolomeo (+5 невидимых)

 eXeL@B —› Программирование —› Обработка memory (и не только) break'ов с помощью VEH
<< . 1 . 2 . 3 . >>
Посл.ответ Сообщение

Ранг: 7.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2011 21:43 · Поправил: GoldenJoe
· Личное сообщение · #1


Как я себе это представляю:
1. Прога ставит бряки и внедряет либу в процесс-жертву
2. Либа устанавливает VEH
3. Когда возникает исключение, прога должна каким-то образом получить от внедренной DLL-ки EXCEPTION_RECORD с кодом исключения и прочей инфой. Прога должна проверить, а наш ли это бряк (а, может, совсем даже не бряк ) и неведомым образом сообщить внедренной либе, что делать дальше (CONTINUE_SEARCH или CONTINUE_EXECUTION вернуть, например).

По первым двум пунктам вопросов нет. С 3 пунктом посложнее. Есть именованный FileMapping да event-ы, есть сокеты. А КРАСИВЫХ решений, я так понимаю, нет?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 12:02
· Личное сообщение · #2

bowrouco пишет:
Гдеже ответ то ?

Так я в бане был. Да и вообще с тобой общаться неприятно, как до конкретики доходит ты дурака включаешь и сливаешься.

bowrouco пишет:
Ну например при вызове сискола с TF возникает задержка, гдето в полтора раза медленее.

Это только в твоих гавнотехнологиях подходит, в коммерческой (да есть такое слово) защите нельзя использовать шаманство с замерами, если они только не составляют несколько секунд, да и то...

bowrouco пишет:
Или например баг приводящий к дедлоку(генерация любого исключения, кроме #DB с TF) позволяет определить TF.

На старых виндах и под некоторыми VM это не так, поэтому так же относится к разряду твоих гавнотехнологий.

bowrouco пишет:
Вот есчо пример - ...

Дальше пошло нереализуемое в юзермоде гавно.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 12:18
· Личное сообщение · #3

PE_Kill

> На старых виндах и под некоторыми VM это не так, поэтому так же относится к разряду твоих гавнотехнологий.

Это никак с VM не сязано. Сие во всей линейке NT, это вызывает некоторые проблемы часто.

> Дальше пошло нереализуемое в юзермоде гавно.

100% рабочий код:

Code:
  1. RPL_MASK equ 11B 
  2.  
  3.    mov cx,RPL_MASK 
  4.    push gs 
  5.    xor eax,eax 
  6.    mov gs,cx 
  7.    mov ax,gs 
  8.    mov gs,cx 
  9.    mov dx,gs 
  10.    mov gs,cx 
  11.    mov cx,gs 
  12.    add ax,cx 
  13.    add ax,dx 
  14.    setz al 
  15.    pop gs


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




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 12:56
· Личное сообщение · #4

И где здесь генерация исключения? В примере достаточно временно перейти на int3, что всё равно нужно делать для ss сегмента и pushfd/popfd инструкций.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 13:17 · Поправил: bowrouco
· Личное сообщение · #5

PE_Kill

Нет тут исключений. Если хотите исключение - макро PKITRAP. Я просто этим примером дал вам понять что вы не правы. А вновь за своё - не годно, ибо нет фолта

> что всё равно нужно делать для ss сегмента и pushfd/popfd инструкций.

Поясните, не понятно. куда перейти и причём сегмент стека ?



Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 ноября 2011 13:51 · Поправил: 0x90h
· Личное сообщение · #6

На правах оффтопа чайника:
bowrouco
Это определение LDT? vbox, аппаратная виртуализация intel (по дефолту), не работает. vmware 7, аналогично, но с шаманством. а 100% метод определить ВМ есть?

PE_Kill
Если все это происходит от tf в обработчике сепшина, не проще-ли сразу манипулировать/эмулировать контекстом выполнение "нежелательных" инструкций?



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 14:07 · Поправил: bowrouco
· Личное сообщение · #7

0x90h

> Это определение LDT?

Нет, причём виртуализация к трейсу. Код выше основан на особенности камня, исполняя iret или retf при смене кпл камень обнуляет рпл поле для нудевых селекторов за ненадобностью. А трейс сопровождается генерацией трапа и возвратом из ядра через iret со сменой кпл.

> Если все это происходит от tf в обработчике сепшина, не проще-ли сразу манипулировать/эмулировать контекстом выполнение "нежелательных" инструкций?

Это вас запутает. Увидев этот код:
Code:
  1.  IRET_FRAME struct
  2.  rEip       PVOID ?
  3.  rSegCs   DWORD ?
  4.  rEFlags DWORD ?
  5.  IRET_FRAME ends
  6.  PIRET_FRAME typedef ptr IRET_FRAME
  7.  
  8.  ; +
  9.  ; Для предотвращения трассировки диспетчера изза T-бага в ядре, откатываем трап.
  10.  ; Это макро определяет адрес трапа, при котором его нужно пропустить сбросив TF.
  11.  ; Возвращает:
  12.  ; Eax - адрес второй инструкции диспетчера исключений.
  13.  ;
  14.  %PKITRAP macro
  15.  Local kitrap_safe
  16.          xor eax,eax
  17.  ; Адрес трапа будет возвращаться в этот фрейм.
  18.          push eax
  19.          push ebp
  20.          Call @f
  21.          jmp kitrap_safe
  22.  @@:
  23.          Call @f
  24.  ; SEH()
  25.          mov eax,dword ptr [esp + 4]
  26.          mov ecx,dword ptr [esp + 2*4]
  27.          mov edx,dword ptr [esp + 3*4]
  28.          cmp EXCEPTION_RECORD.ExceptionCode[eax],STATUS_SINGLE_STEP
  29.          lea edx,CONTEXT.regEip[edx]        ; IRET-frame.
  30.          assume edx:PIRET_FRAME
  31.          .if Zero?
  32.                  push [edx].rEip
  33.                  pop dword ptr [ecx + 4*4]
  34.          .else
  35.                  inc [edx].rEip
  36.          .endif
  37.          btr [edx].rEFlags,8       ; !EFLAGS_TF
  38.          xor eax,eax
  39.          retn 4*4
  40.  @@:
  41.          push dword ptr fs:[eax]   ; TEB.Tib.ExceptionList
  42.          mov dword ptr fs:[eax],esp
  43.          push EFLAGS_TF or EFLAGS_IF or EFLAGS_MASK
  44.          popfd
  45.          cli
  46.  kitrap_safe:
  47.          pop dword ptr fs:[eax]
  48.          lea esp,[esp + 2*4]
  49.          pop ebp
  50.          pop eax
  51.  endm

Вы сразу и не поймёте что он делает и как сие обойти. А так да, можно конечно потыкать напрямую контексты. Кстате можно использовать пятиэтажный вызов теневых колбеков, в этом случае из юзермода невозможно будет трейсить код - контекстом манипулирует ядро и он не доступен из юзермода. Но реализация немного сложнее.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 14:48
· Личное сообщение · #8

Блин Клерк, я как будто с глухим разговариваю. Ты писал, что

bowrouco пишет:
Или например баг приводящий к дедлоку(генерация любого исключения, кроме #DB с TF) позволяет определить TF.


На что я ответил:
PE_Kill пишет:
Это только в твоих гавнотехнологиях подходит, в коммерческой (да есть такое слово) защите нельзя использовать шаманство с замерами, если они только не составляют несколько секунд, да и то...


На что ты отписал и запостил код:
bowrouco пишет:
Это никак с VM не сязано. Сие во всей линейке NT, это вызывает некоторые проблемы часто.


Я утверждаю, что пример с дидлоками на разных виндах и ВМ работает по разному, если ты так уверен в своей правоте можем заключить пари, скажем на 1к бачинских.

bowrouco пишет:
Поясните, не понятно. куда перейти и причём сегмент стека ?

Для ламерофф поясняю, манипуляции с ss типа pop ss невозможно трассировать через трап, нужно использовать брейкпоинты.

bowrouco пишет:
Это вас запутает. Увидев этот код:

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

0x90h пишет:
а 100% метод определить ВМ есть?

У меня есть, определяет любую ВМ типа VmWare, VBox, etc, но не бесплатно.

0x90h пишет:
Если все это происходит от tf в обработчике сепшина, не проще-ли сразу манипулировать/эмулировать контекстом выполнение "нежелательных" инструкций?

Так можно и проще, это я для гавно-клерка отвечал.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 15:08
· Личное сообщение · #9

PE_Kill

> Я утверждаю, что пример с дидлоками на разных виндах и ВМ работает по разному

Это не зависит от вм. Если она нормально обрабатывает трапы, тоесть при срабатывании ловушки корректно сохраняет флажки в стеке. У вари с этим нет проблем. Кстати изза хитроумной её реализации и код выше(с селекторами) на ней хорошо исполняется. Про пари с вами бессмысленно спорить - всегда найдётся какаянибудь кривая вм.

> разбираться в нем нет смысла.

Это не ответ. За всех не отвечайте, хотя бы только за себя. А гавном кидать в меня бессмысленно. Кстате если про шадов сказать, то весь ваш опыт окажется не достаточным для понимания как такой детект исполняется, ибо шадов это довольно сложный механизм, по большей части ядерный.

> У меня есть, определяет любую ВМ типа VmWare, VBox, etc, но не бесплатно.

Взять порт(железо) прочитать какойнибудь или мср заюзать. Спасибо, можно не благодарить

> гавно-клерка

Обоснуйте почему это так. Полностью рабочий код. Для закрытия бага, если вы это не юзали и чтото в юзермоде трейсили, то получается это ваш код говно, ибо он повесит поток при возникновении любого фолта.

> манипуляции с ss типа pop ss невозможно трассировать через трап, нужно использовать брейкпоинты.

Это хорошо что вы вкурсе про загрузку ss, в манах это писано чёрным по белому. Вот только отношения это не имеет к #3.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 15:31
· Личное сообщение · #10

bowrouco пишет:
Про пари с вами бессмысленно спорить - всегда найдётся какаянибудь кривая вм.

Ну ясно снова соскок. Хех, тут ничего не поделаешь, как обычно.

bowrouco пишет:
Взять порт(железо) прочитать какойнибудь или мср заюзать. Спасибо, можно не благодарить

Бред, какой порт, какой мср? Типа все ВМ дают прочитать какой то порт? Проспись. У меня есть десяток строк на масме, которые детектят ЛЮБУЮ вм, причем не по всяким там ненормальным адресам, офсетам, сигнатурам, портам,... и не привязан к какой либо ВМ.

bowrouco пишет:
Полностью рабочий код.

На моей Win7 x64 не работает, система не дает освободить память образа. Т.е. это даже не хардкод, это система безопасности, поэтому сказать - ПОЛНОСТЬЮ рабочий код, признать себя ламером.

bowrouco пишет:
Это хорошо что вы вкурсе про загрузку ss, в манах это писано чёрным по белому.

Только вот ты почему то не в курсе, раз спрашивал у меня. Эх илита, таже выкрутиться не смог.

-----
Yann Tiersen best and do not fuck




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 19 ноября 2011 16:08
· Личное сообщение · #11

когда же вам обоим это надоест



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 16:13 · Поправил: bowrouco
· Личное сообщение · #12

PE_Kill

> Бред, какой порт, какой мср?

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

> У меня есть десяток строк на масме, которые детектят ЛЮБУЮ вм

Я не отрицаю, возможно.

> На моей Win7 x64 не работает

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

> Только вот ты почему то не в курсе, раз спрашивал у меня.

Я не спрашивал, привёл в пример код, а вы на него какойто бред ответили про Ss и Int3.



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 19 ноября 2011 16:29
· Личное сообщение · #13

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


Такое понятие как вот это код только для х86, а это для х64 не должно вообще быть. Грамотно написанный код не требует допилов при компиляции под другую архитектуру как в данном случае х64. В моем случае я просто переключу профиль в студии на х64 и получу готовый, рабочий х64 бинарник. А тебе придется все переписывать заново. Где профит? Это какая-то садомаза для людей с кучей свободного времени.



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 16:31 · Поправил: bowrouco
· Личное сообщение · #14

Alchemistry

> А тебе придется все переписывать заново.

Да, мне придётся переписывать на 64, это же не скрипт, а асм. У меня куча свободного времени, почти всё время я свободный. И пишу на асме потомучто мне это нравится, а не для того чтобы сделать какойто портабельный продукт и далее его продавать. Если нужно будет такое, я заюзаю скрипт.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 17:04 · Поправил: PE_Kill
· Личное сообщение · #15

bowrouco пишет:
Да любой подходящий. Ну CMOS например я не знаю, это нужно выбрать подходящий. Варя элементарно так детектится, даже через мср, прочие вм я не юзаю.

Ну-ну, давай очень интересно, как ты считаешь в ринг3 через мср и 100% скажешь что это ВМ, не VmWare, а именно любая ВМ. Не шаришь не пиши.

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

Илита должна знать, что x32 запускается на x64 в режиме эмуляции и все x32 программы работают в этом режиме, кроме твоих поделок, так что дураком здесь прикидываешься ты, как и всегда впрочем. Ну а если уж прям для натив x32 исключительно хардкод, то на win2000 тоже не запускается, хотя это самый что ни на есть натив x32, давай говори, что win2k гавно, илита ее не юзает.

bowrouco пишет:
Я не спрашивал, привёл в пример код, а вы на него какойто бред ответили про Ss и Int3.

PE_Kill пишет:
В примере достаточно временно перейти на int3, что всё равно нужно делать для ss сегмента и pushfd/popfd инструкций.

bowrouco пишет:
Поясните, не понятно. куда перейти и причём сегмент стека ?

Когда говорят про трап и ss других ассоциаций просто быть не может, не надо прикидываться дураком.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 17:11
· Личное сообщение · #16

PE_Kill

В юзермоде нет прав для I/O, это только в младших версиях доступно. Я имел ввиду из под ядра. Универсального способа обнаружить любую вм я не знаю, есть некоторые основанные на багах. Хорошо что вы знаете, что есчо не факт, хотя мне както всёравно.

> win2000 тоже не запускается

Там вроде должны быть апи в импорте, ExitProcess() вроде как. Я его никогда в семплы не вставляю, хотя знаю что нужно.

> что x32 запускается на x64 в режиме эмуляции

Стоит заметить что в режиме кривой эмуляции. Выше я уже писал.

> Когда говорят про трап и ss других ассоциаций просто быть не может, не надо прикидывать дураком.

Вы ответили это про код со сбросом RPL:

> И где здесь генерация исключения? В примере достаточно временно перейти на int3..

Тоесть каким оно боком относится не понятно. Да и смысл фразы я так и не понял.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 17:26
· Личное сообщение · #17

bowrouco пишет:
Там вроде должны быть апи в импорте, ExitProcess() вроде как.

Ну илите то не знать, что экспортируемого VEH в win2k нет, причем тут импорт. Да еще и ExitProcess- это вообще жесть.

bowrouco пишет:
Стоит заметить что в режиме кривой эмуляции. Выше я уже писал.

Только почему то кривая эмуляция отрабатывает для всех приложений кроме ваших, ну да если ваше не эмулится то эмуль кривой, надо было догадаться.

bowrouco пишет:
Тоесть каким оно боком относится не понятно. Да и смысл фразы я так и не понял.

Ну тут попрактиковаться нужно, одной теории тут недостаточно.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 17:33 · Поправил: bowrouco
· Личное сообщение · #18

PE_Kill

Про VEH я знаю, забыл правдо. Шим например в XP делает выбор - определяет версию и если она младшая, то ставит UEF вместо VEH. Я это никогда не использую, ибо нет смысла. Некоторые пишут код рабочим даже на 98.

> ExitProcess- это вообще жесть.

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

> Ну тут попрактиковаться нужно, одной теории тут недостаточно.

Можно писать всё подряд, как это инфы делают. Теория теорией, но всёже обьясните, интересно.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 17:40
· Личное сообщение · #19

bowrouco пишет:
Теория теорией, но всёже обьясните, интересно.

Нет, вы не достойны, т.к. илита и мне до вас далеко.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 17:43
· Личное сообщение · #20

PE_Kill

Бред потому что код выше ss не перезагружает, вот и всё.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 17:49
· Личное сообщение · #21

bowrouco пишет:
Бред потому что код выше ss не перезагружает, вот и всё.

Ну так там ss и нет, или ты сам не видишь, что пишешь?

Так и быть расшифрую. Твой код нужно трассировать брейкпоинтами, как и манипуляции с ss и eflags, причем последнее нужно делать 100%, поэтому и для твоего кода не проблема реализовать трассировщик. Не знаю как еще понятнее.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 17:56
· Личное сообщение · #22

PE_Kill

Ну теперь понятно. Сразу нельзя было нормально ответить.. Вообще то я рассматривал обычную трассировку, та которая #DB через TF. Инты в коде и другие инструкции фолт генерящие не совсем корректно называть трассировкой. Можно вообще копировать код поблочно и исполнять в буфере, либо пойти дальше и эмулировать, как это олли делает. Всёже это будет не трейс. Код выше определяет трассровку обычную, через TF и хард брейк тоже задетектит. А на счёт точек останова через инты - я создал тему про патчи, где подробно показал как с этим можно в юзермоде бороться.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 17:59
· Личное сообщение · #23

Так мы на этой странице и обсуждали как прятать TF, короче как обычно увел всё на другое. Оля как раз и ставит бряки, где TF может спалиться/пролететь.

-----
Yann Tiersen best and do not fuck




Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 18:02 · Поправил: bowrouco
· Личное сообщение · #24

PE_Kill

Обсуждали TF, а вы перешли на патчи снова - инты. Используя RE проекцию запись в память станет невозможна. Олли с этим не справляется. На скрине F8.

2b81_19.11.2011_EXELAB.rU.tgz - 1.png



Ранг: 145.8 (ветеран), 191thx
Активность: 0.140.36
Статус: Участник

Создано: 19 ноября 2011 18:13
· Личное сообщение · #25

bowrouco пишет:
> win2000 тоже не запускается

Там вроде должны быть апи в импорте, ExitProcess() вроде как. Я его никогда в семплы не вставляю, хотя знаю что нужно.


Странно что илита об этом не знает. В Windows NT4.0/2000 есть ошибка в реализации CreateProcess, приходится таскать kernel32.dll



Ранг: 47.7 (посетитель), 17thx
Активность: 0.090
Статус: Участник

Создано: 19 ноября 2011 18:14
· Личное сообщение · #26

Alchemistry

Я не помню всего, если вы хотите меня на чёмто словить - я не машина и тоже могу ошибаться и забывать.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 18:46
· Личное сообщение · #27

Клерк не робот? Не знал.

-----
Yann Tiersen best and do not fuck




Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 19 ноября 2011 19:26
· Личное сообщение · #28

2PE_Kill
"У меня есть десяток строк на масме,которые детектят ЛЮБУЮ вм..." при отключенном кэше это нереально. при включенном детектится любая вм в 3 строчки. но это из существующих. теоретически эмуляция кэша тоже возможна, только накладно. Думаю ты преувеличиваешь возможности своего кода. Хотя... Раз детект 100% стабильно, тебе ведь ничто не мешает выложить кодес? Если что-то мешает - значит детект не 100%, а рассчитан на недостатки эмуляции.




Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 19 ноября 2011 19:32
· Личное сообщение · #29

spinz
Выше PE_Kill написал:

У меня есть, определяет любую ВМ типа VmWare, VBox, etc, но не бесплатно.

Платите бабосы. Как там было: "Любой каприз..." (с) PE_Kill.

-----
Stuck to the plan, always think that we would stand up, never ran.




Ранг: 50.0 (постоянный), 31thx
Активность: 0.090.1
Статус: Участник

Создано: 19 ноября 2011 19:53 · Поправил: spinz
· Личное сообщение · #30

Епта, я вам выложу несколько строчек забесплатно. Которые детектят любые из существующих вм, хоть хардовые, хоть как борщ софтовые. Хотя может пекилл заплатит чтобы я не выкладвал?
Забыл. В ядре.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 19 ноября 2011 20:05 · Поправил: PE_Kill
· Личное сообщение · #31

spinz пишет:
Забыл. В ядре.

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

spinz пишет:
Раз детект 100% стабильно, тебе ведь ничто не мешает выложить кодес?

На понт детей лови, мне пох.

-----
Yann Tiersen best and do not fuck



<< . 1 . 2 . 3 . >>
 eXeL@B —› Программирование —› Обработка memory (и не только) break'ов с помощью VEH
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати