Гость Merano Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Доброго времени суток всем!Предлагаю вам поиздеваться над новой жертвой - "TrainMe by Merano" Мой первый TrainMe находился в этой теме: http://forum.gamehacklab.ru/topic/1731-trainme-by-merano/К сожалению, файл был удален с файлообменника по истечению срока хранения, а исходников и скомпиленного TrainMe у меня не осталось, т.к. тот винт, на котором лежали исходники - сгорел Но все-таки я набрался смелости, и написал новый TrainMe, который, на мой взгляд, интересней предыдущего.Итак, "TrainMe by Merano" бросает вам новый вызов На этот раз он использует следующие способы защиты:Динамическое распределение памяти.Взаимно используемый код.Подсказка #1В TrainMe есть также скрытое значения, которое отвечает за максимальную вместимость патронов в обойму.Конечно, ничто не мешает переписать инструкцию количества патронов, изменив ее на "over999".Это значение сделано для тех случаев, когда (и если) люди захотят попробовать найти скрытое значение. Ну а также маленький тест, возможно ли найти это скрытое значение, или же нет Подсказка #2:Здоровье хранится во "Float".Патроны хранятся в "Double"Справка:Я вас обманул, в игре не одно скрытое значение, а четыре (на данный момент). Остальные три - патроны врагов.Взломав эти три значения, и изменив их, допустим, на 0 - враги не смогут вас атаковать Но это будет в следующей версии. В версии 1.0 эти три адреса были сделаны для тестирования, и я просто забыл их убрать до следующей версии А пока можете потренироваться на изменении этих значений Также в следующей версии планируется добавить функцию проверки результата взлома, и, возможно, начисление каких-то особых очков, которые расскажут вам о вашем уровне мастерства в сфере взлома игр. Но пока это только планы.Этот TrainMe, надеюсь, будет интересен не только новичкам, но и продвинутым взломщикам игр.Скачать "TrainMe by Merano" можно по этой ссылке: http://rghost.ru/44184444Срок хранения файла: 30 днейВерсия: 1.0Сделано специально для GameHackLab.ru P.S.Ребят, если нашли какие-то ошибки в работе программы - дайте знать, пожалуйста, и я постараюсь их исправить в следующих версиях.P.S. #2Над TrainMe потел 2 дня, и программирование структур для меня в новинку, поэтому прошу сильно не пинать Ссылка на комментарий Поделиться на другие сайты Поделиться
Grom-Skynet Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Привет.... вот что намудрил))))))))))))Здоровье максимум[ENABLE]alloc(newmem,2048)label(returnhere)label(stsandart)newmem:cmp byte ptr [eax+10],#****jne stsandartfstp dword ptr [eax+04]mov [eax+04],(float)100waitpop edxjmp returnherestsandart:fstp dword ptr [eax+04]waitpop edxjmp returnhereTrnMe.exe+52F56:jmp newmemreturnhere:[DISABLE]TrnMe.exe+52F56:fstp dword ptr [eax+04]waitpop edxdealloc(newmem)Броня максимум[ENABLE]alloc(newmem,2048)label(returnhere)newmem:mov eax,0sub [edx+04],eaxcmp [edx+04],#100jge +07mov [edx+04],#100jmp TrnMe.exe+535B8jmp returnhereTrnMe.exe+53596:jmp newmemreturnhere:[DISABLE]TrnMe.exe+53596:sub [edx+04],eaxjmp TrnMe.exe+535B8dealloc(newmem)Патроны не уменьшаются[ENABLE]TrnMe.exe+52F5F:db 90 90 90 90 90 90[DISABLE]TrnMe.exe+52F5F:db D8 25 6C 2F 45 00Деньги не падают ниже 100 ( Уст 1000 )[ENABLE]alloc(newmem,2048)label(returnhere)newmem:cmp [eax],#100jge +06mov [eax],#1000mov eax,[eax]cmp eax,02jmp returnhereTrnMe.exe+53B51:jmp newmemreturnhere:[DISABLE]TrnMe.exe+53B51:mov eax,[eax]cmp eax,02dealloc(newmem)Легкое убийство[ENABLE]alloc(newmem,2048)label(returnhere)label(stsandart)newmem:cmp byte ptr [eax+10],#****jne stsandartfstp dword ptr [eax+04]mov [eax+04],(float)100waitpop edxjmp returnherestsandart:fstp dword ptr [eax+04]mov [eax+04],0waitpop edxjmp returnhereTrnMe.exe+52F56:jmp newmemreturnhere:[DISABLE]TrnMe.exe+52F56:fstp dword ptr [eax+04]waitpop edxdealloc(newmem)Все вроде ок... но айди не тот взял..... ##### тут хранится как бы порядковый номер у нас он 1.... враги 2-3-4.... а вот тут хранится нормальный айди... ####... но он в дубл хранится.... как с дубл работать в скриптах ... так и не разобрался....... а так вроде все функции работают......... Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Grom-Skynet, приветствую! Ну вы прям профи А удалось найти адрес, который отвечает за максимальное количество патронов в обойме?И еще маленькая просьба: спрячьте, пожалуйста, хотя-бы ID под спойлер, чтобы другим не обламывать интерес Ссылка на комментарий Поделиться на другие сайты Поделиться
Grom-Skynet Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Grom-Skynet, приветствую!Ну вы прям профи А удалось найти адрес, который отвечает за максимальное количество патронов в обойме?И еще маленькая просьба: спрячьте, пожалуйста, хотя-бы ID под спойлер, чтобы другим не обламывать интерес айди спрятал.... а вот насчет патронов ... точнее максимального их значения.... попытаюсь найти......))))) Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Grom-Skynet, спасибо Уже готовится к релизу 1.1 версия.Пока выложу список изменений, что на данный момент сделано, а новую версию TrainMe выложу ближе к вечеру (по МСК), до этого момента надо еще по-отлаживать да и может еще чего в голову взбредет сделать Изменения в версии 1.1:Исправлен недочет в расчете здоровья. Больше никаких ошибок связанных со здоровьем выскакивать не должно.Добавлена функция проверки взлома. Пока только проверка проходит по здоровью.Изменена функция получения урона, добавлена проверка патронов у врагов. Как и было обещано.Также в версии 1.1 были изменены адреса и смещения, что говорит о том, что скрипты, которые были сделаны до этого - на этой версии работать не будут. Это сделано для того, чтобы никто заранее не знал, как выглядят адреса со смещениями, и чтобы каждый прошел процесс взлома с нуля, и почувствовал силу изменений Ссылка на комментарий Поделиться на другие сайты Поделиться
Grom-Skynet Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 ждемс...... Ссылка на комментарий Поделиться на другие сайты Поделиться
AfterMan Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Godmode[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(hack)label(exit)newmem:cmp [eax+0010],1je hackfstp dword ptr [eax+04]jmp exithack:fstp dword ptr [eax+04]mov [eax+04],(float)100jmp exitexit:waitpop edxjmp returnhere"TrnMe.exe"+52F56:jmp newmemreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheat"TrnMe.exe"+52F56:fstp dword ptr [eax+04]waitpop edxdealloc(newmem)//Alt: db D9 58 04 9B 5AArmor[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(exit)newmem:mov [eax+04],#100mov edx,[eax+04]jmp exitexit:mov eax,[TrnMe.exe+56BDC]jmp returnhere"TrnMe.exe"+52C32:jmp newmemnopnopnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheat"TrnMe.exe"+52C32:mov edx,[eax+04]mov eax,[TrnMe.exe+56BDC]dealloc(newmem)//Alt: db 8B 50 04 A1 DC 6B 45 00Super Ammo[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(exit)newmem:mov [eax+000C],(float)4.96875fld qword ptr [eax+08]add esp,F4jmp exitexit:jmp returnhere"TrnMe.exe"+536C0:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheat"TrnMe.exe"+536C0:fld qword ptr [eax+08]add esp,F4dealloc(newmem)//Alt: db DD 40 08 83 C4 F4Money[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(exit)newmem:mov [eax],#200fild dword ptr [eax]add esp,F4jmp exitexit:jmp returnhere"TrnMe.exe"+53711:jmp newmemreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheat"TrnMe.exe"+53711:fild dword ptr [eax]add esp,F4dealloc(newmem)//Alt: db DB 00 83 C4 F4 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Все вроде ок... но айди не тот взял..... ##### тут хранится как бы порядковый номер у нас он 1.... враги 2-3-4.... а вот тут хранится нормальный айди... ####... но он в дубл хранится.... как с дубл работать в скриптах ... так и не разобрался....... а так вроде все функции работают.........Grom-Skynet, я говорил об идентификаторах, которые в процитированном месте находятся, про скрипты я ничего не говорил Просто чтобы не на виду были, а хотя бы под спойлером.. Вы меня неправильно поняли Ладно, в 1.1. сделаю другие идентификаторы Ссылка на комментарий Поделиться на другие сайты Поделиться
AfterMan Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Трейн ми хороший,но честно говоря меня здесь ничего не удивило(ну это лично мое мнение),кроме этого момента : В TrainMe есть также скрытое значения, которое отвечает за максимальную вместимость патронов в обойму.Конечно, ничто не мешает переписать инструкцию количества патронов, изменив ее на "over999".Это значение сделано для тех случаев, когда (и если) люди захотят попробовать найти скрытое значение. Ну а также маленький тест, возможно ли найти это скрытое значение, или же нет Ну хоть что-то необычное.Надеюсь что версию 1.1 ломать будет посложнее. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Трейн ми хороший,но честно говоря меня здесь ничего не удивило(ну это лично мое мнение)Ну хоть что-то необычное.Надеюсь что версию 1.1 ломать будет посложнее.А чего вы ждете от TrainMe?Нет, я конечно могу сделать так, чтобы адреса каждую секунду менялись (или чаще), но это совсем не значит, что вместо инструкций в отладчике вы увидите пляшущих гоблинов, например.Вы скажите, что вы хотите увидеть в новых версиях, и я постараюсь это реализовать. Не говоря о том, что я уже предупредил в первом посте этой темы, что работа со структурами для меня в новинку, и ждать чего-либо сверхъестественного при таком раскладе - как-то...Конструктивная критика приветствуется, предъявы и сгибание пальцев веером без причины - в других темах.У всех остальных прошу прощения за маленький срыв Ссылка на комментарий Поделиться на другие сайты Поделиться
AfterMan Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Когда знаешь что будет это уже не так интересно,интересно столкнуться с необычной ситуацией,поэтому лучше делай на свое усмотрение Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Патроны не уменьшаются...В твоей реализации, если подумать, то не патроны не уменьшаются в их количестве, а выстрел не происходит. Данная инструкция подходит для Rapid Fire, но никак не для бесконечных патрон. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Ну, вот и версия 1.1Список изменений:Исправлен недочет в расчете здоровья. Больше никаких ошибок связанных со здоровьем выскакивать не должно.Добавлена функция проверки взлома. Пока только проверка проходит по здоровью.Изменена функция получения урона, добавлена проверка патронов у врагов. Как и было обещано.Отлажена функция проверки патронов врагов.Исправлено несколько незначительных недочетов.Также в версии 1.1 намеренно изменены адреса, смещения и идентификаторы игроков, что говорит о том, что скрипты, которые были сделаны до этого - на этой версии работать не будут. Это сделано для того, чтобы никто заранее не знал, как выглядят адреса со смещениями, и чтобы каждый прошел процесс взлома с нуля, и почувствовал силу изменений Ссылка на скачивание: http://rghost.ru/44195960Версия: 1.1Срок хранения 30 днейВ версии 1.2 будет полная проверка взлома (по всем параметрам), сейчас просто отлучаюсь часто, совсем не до кодинга... Что еще будет в версии 1.2 - пока точно сказать не могу.Огромная просьба ко всем: все ключевые моменты взлома кидайте ПОД спойлер. Давайте осознаем, что кроме себя любимого - на форуме есть также и другие люди, которые, возможно, тоже хотят самостоятельно взломать TrainMe и насладиться процессом. Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Сломал только здоровье, в остальном изменений не было же.[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)newmem:cmp [ebx+1d4],34jne short originalcodemov [ebx+30],(float)100jmp returnhereoriginalcode:mov [ebx+30],eaxmov eax,004C4B40jmp returnhere"TrnMe11.exe"+52F44:jmp newmemdb 90 90 90returnhere:[DISABLE]"TrnMe11.exe"+52F44:mov [ebx+30],eaxmov eax,004C4B40dealloc(newmem)"добавлена проверка патронов у врагов"А смысл в этом, если враги - это только полоски, без каких-либо действий, т.е. не стреляют. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 SER[G]ANT, не только "полоски"...У врагов тоже есть патроны. И при нажатии "Получить урон" - враги КАК-БЫ стреляют в персонажа игрока, соответственно - у персонажа игрока отнимается здоровье и броня, у врагов по патрону за выстрел.Взломав патроны - вы лишите противников возможности наносить вред вашему персонажу.Бред? Нет. Сделано для тех, кто хочет лишний раз попрактиковаться.По поводу изменений, то я проверил только здоровье, да. Но и остальные адреса со смещениями должны были измениться. Ссылка на комментарий Поделиться на другие сайты Поделиться
Laziz Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 SER[G]ANT cmp [ebx+1d4],34 это ид? если ид, то у меня 52 почемуто Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 ...не только "полоски"...Очень важное уточнение, т.к. визуально это никак не отображается и мысль только одна, что урон наносит кнопка "Получить урон", а не враги....если ид, то у меня 52 почемутоА если подумать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Laziz Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 ANT' timestamp='1362154802' post='13389']А если подумать? Вот я тупанул (HEX) Ссылка на комментарий Поделиться на другие сайты Поделиться
Grom-Skynet Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Ну что.... вот как это все выглядит....Здоровья максимум[ENABLE]alloc(newmem,2048)label(returnhere)label(standart)newmem:cmp [ebx+1D4],#52jne standartmov [ebx+30],(float)100mov eax,004C4B40jmp returnherestandart:mov [ebx+30],eaxmov eax,004C4B40jmp returnhereTrnMe11.exe+52F44:jmp newmemnopnopnopreturnhere:[DISABLE]TrnMe11.exe+52F44:mov [ebx+30],eaxmov eax,004C4B40dealloc(newmem)Броня максимум[ENABLE]alloc(newmem,2048)label(returnhere)newmem:mov eax,0sub [edx+04],eaxcmp [edx+04],#100jge +07mov [edx+04],#100jmp TrnMe11.exe+5386Ejmp returnhereTrnMe11.exe+537FC:jmp newmemreturnhere:[DISABLE]TrnMe11.exe+537FC:sub [edx+04],eaxjmp TrnMe11.exe+5386Edealloc(newmem)Патроны не уменьшаются[ENABLE]TrnMe11.exe+52F5F:db 90 90 90 90 90 90[DISABLE]TrnMe11.exe+52F5F:db D8 25 6C 2F 45 00Легкое убийство[ENABLE]alloc(newmem,2048)label(returnhere)label(standart)newmem:cmp [ebx+1D4],#52jne standartmov [ebx+30],(float)100mov eax,004C4B40jmp returnherestandart:mov [ebx+30],0mov eax,004C4B40jmp returnhereTrnMe11.exe+52F44:jmp newmemnopnopnopreturnhere:[DISABLE]TrnMe11.exe+52F44:mov [ebx+30],eaxmov eax,004C4B40dealloc(newmem)[DISABLE]TrnMe11.exe+52F5F:db D8 25 6C 2F 45 00Деньги не падают ниже 100 ( Уст 1000 )[ENABLE]alloc(newmem,2048)label(returnhere)newmem:cmp [eax],#100jge +06mov [eax],#1000mov eax,[eax]cmp eax,02jmp returnhereTrnMe11.exe+53E11:jmp newmemreturnhere:[DISABLE]TrnMe11.exe+53E11:mov eax,[eax]cmp eax,02dealloc(newmem)Патроны у вас бесконечные... у врагов ноль[ENABLE]alloc(newmem,2048)label(returnhere)label(chit)globalalloc(patroni,4)newmem:cmp [eax+1D4],#52je chitmov [patroni],(float)5000fld qword ptr [eax+38]fsub dword ptr [patroni]jmp returnherechit:fld qword ptr [eax+38]db 90 90 90 90 90 90jmp returnhereTrnMe11.exe+52F5C:jmp newmemnopnopnopnopreturnhere:[DISABLE]TrnMe11.exe+52F5C:fld qword ptr [eax+38]fsub dword ptr [TrnMe11.exe+52F6C]dealloc(newmem)Да и вот что еще......)))))) >>>> Таблица >>> TrnMe11.CT Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 2 марта, 2013 Поделиться Опубликовано 2 марта, 2013 ANT' timestamp='1362154802' post='13389']Очень важное уточнение, т.к. визуально это никак не отображается и мысль только одна, что урон наносит кнопка "Получить урон", а не враги.А что вас конкретно не устраивает? В каких шутерах вы встречали ситуацию, когда вам показывают количество патронов врагов? И хочу заметить, что отнюдь не во всех играх отображается здоровье противников. Что же касается получения урона, то тут, по-моему, все должно быть интуитивно понятно, ибо если в вас выстрелили - в вас ВЫСТРЕЛИЛИ, а не ветер дунул и попортил вам здоровье. Я старался все действия в TrainMe оправдать, и оправдал - я считаю. А если в нем отсутствуют бабахи и 3D модели, сигнализирующие о том, что враг в вас выстрелил - это не обязательно баг; - возможно так задумано. И в первом посте я уже говорил о том, что у врагов тоже присутствуют патроны, и что это не просто так. Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 2 марта, 2013 Поделиться Опубликовано 2 марта, 2013 Не буду вступать с вами в бессмысленную перепалку, я человек добрый, поэтому удачи вам. Ссылка на комментарий Поделиться на другие сайты Поделиться
Grom-Skynet Опубликовано 2 марта, 2013 Поделиться Опубликовано 2 марта, 2013 Подсказку можно... у врагов патроны как 4 байта хранятся или как то иначе....???? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 2 марта, 2013 Поделиться Опубликовано 2 марта, 2013 SER[G]ANT, курить бросаю, поэтому пока так остро реагирую на все "раздражители"... Извините По поводу сигнализирования о том, что противники стреляют в персонажа - я подумаю над этим. Возможно, будет звуковое сопровождение; возможно будет как-то иначе... не знаю пока.Grom-Skynet, нет, как Double. Ссылка на комментарий Поделиться на другие сайты Поделиться
Grom-Skynet Опубликовано 2 марта, 2013 Поделиться Опубликовано 2 марта, 2013 Ну что.... вот как это все выглядит....Здоровья максимум[ENABLE]alloc(newmem,2048)label(returnhere)label(standart)newmem:cmp [ebx+1D4],#52jne standartmov [ebx+30],(float)100mov eax,004C4B40jmp returnherestandart:mov [ebx+30],eaxmov eax,004C4B40jmp returnhereTrnMe11.exe+52F44:jmp newmemnopnopnopreturnhere:[DISABLE]TrnMe11.exe+52F44:mov [ebx+30],eaxmov eax,004C4B40dealloc(newmem)Броня максимум[ENABLE]alloc(newmem,2048)label(returnhere)newmem:mov eax,0sub [edx+04],eaxcmp [edx+04],#100jge +07mov [edx+04],#100jmp TrnMe11.exe+5386Ejmp returnhereTrnMe11.exe+537FC:jmp newmemreturnhere:[DISABLE]TrnMe11.exe+537FC:sub [edx+04],eaxjmp TrnMe11.exe+5386Edealloc(newmem)Патроны не уменьшаются[ENABLE]TrnMe11.exe+52F5F:db 90 90 90 90 90 90[DISABLE]TrnMe11.exe+52F5F:db D8 25 6C 2F 45 00Легкое убийство[ENABLE]alloc(newmem,2048)label(returnhere)label(standart)newmem:cmp [ebx+1D4],#52jne standartmov [ebx+30],(float)100mov eax,004C4B40jmp returnherestandart:mov [ebx+30],0mov eax,004C4B40jmp returnhereTrnMe11.exe+52F44:jmp newmemnopnopnopreturnhere:[DISABLE]TrnMe11.exe+52F44:mov [ebx+30],eaxmov eax,004C4B40dealloc(newmem)[DISABLE]TrnMe11.exe+52F5F:db D8 25 6C 2F 45 00Деньги не падают ниже 100 ( Уст 1000 )[ENABLE]alloc(newmem,2048)label(returnhere)newmem:cmp [eax],#100jge +06mov [eax],#1000mov eax,[eax]cmp eax,02jmp returnhereTrnMe11.exe+53E11:jmp newmemreturnhere:[DISABLE]TrnMe11.exe+53E11:mov eax,[eax]cmp eax,02dealloc(newmem)Патроны у вас бесконечные... у врагов ноль[ENABLE]alloc(newmem,2048)label(returnhere)label(chit)globalalloc(patroni,4)newmem:cmp [eax+1D4],#52je chitmov [patroni],(float)5000fld qword ptr [eax+38]fsub dword ptr [patroni]jmp returnherechit:fld qword ptr [eax+38]db 90 90 90 90 90 90jmp returnhereTrnMe11.exe+52F5C:jmp newmemnopnopnopnopreturnhere:[DISABLE]TrnMe11.exe+52F5C:fld qword ptr [eax+38]fsub dword ptr [TrnMe11.exe+52F6C]dealloc(newmem)Да и вот что еще......)))))) >>>> Таблица >>> TrnMe11.CT Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 2 марта, 2013 Поделиться Опубликовано 2 марта, 2013 Grom-Skynet, поздравляю! Все-таки получилось даблы в скриптах побороть? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения