Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.11.15;
Скачать: [xml.tar.bz2];

Вниз

Перехват функций игры Battlefield 2   Найти похожие ветки 

 
Пит   (2009-09-05 12:43) [0]

Есть игрушка, она обращается за статистикой на свой глобальный сервер по имени домена аля: sub.domen.com

Есть задача переправить ее на нашу локальную статистику. Вариант с hosts не предлагать плиз.

Фишка еще в том, что я не знаю по какому протоколу она забирает статистику, то ли UDP, то ли TCP... Вполне возможно что по HTTP.

Я перехватывал функции connect, WSAConnect, SendTo, WSASendTo - внедрение при помощи хуков с целью подменить IP-адрес. Не то.

Может, у кого есть предположения какие?


 
test ©   (2009-09-05 12:52) [1]

Счас ветку за взлом закроют.

зы
Сниффер + Google


 
TUser ©   (2009-09-05 12:57) [2]


> Вариант с hosts не предлагать плиз.

DNS ?


 
Пит   (2009-09-05 13:19) [3]

TUser, расшифруй мысль?

P.S. Это нужно делать юзеро-ориентировано, минимум действий со стороны пользователя.


 
Kerk ©   (2009-09-05 13:22) [4]

А чем вариант с хостс не устраивает, не понятно. Самый прямой и простой вариант.


 
Пит   (2009-09-05 13:36) [5]

Да, запрос идет по протоколу HTTP, аля:

GET /ASP/getplayerinfo.aspx?pid=231860270&info=per*,cmb*,twsc,cpcp,cacp,dfcp,kila,heal,rv iv,rsup,rpar,tgte,dkas,dsab,cdsc,rank,cmsc,kick,kill,deth,suic,ospm,klpm,klpr,dt pr,bksk,wdsk,bbrs,tcdr,ban,dtpm,lbtl,osaa,vrk,tsql,tsqm,tlwf,mvks,vmks,mvn*,vmr* ,fkit,fmap,fveh,fwea,wtm-,wkl-,wdt-,wac-,wkd-,vtm-,vkl-,vdt-,vkd-,vkr-,atm-,awn-,alo-,abr-,ktm-,kkl-,kdt-,kkd- HTTP/1.1
Host: BF2Web.gamespy.com
User-Agent: GameSpyHTTP/1.0
Connection: close


Есть подозрение, что код запроса встроен в скрипт, который исполняет интерпретатор. Но это не так важно, один фиг для коннекта должна использовать WinApi функция?

Может, они запрашивают с помощью WinInet, а та не вызывает непосредственно connect, SendTo, а сразу использует какие-то более глубокие вызовы?

Попробую перехватить InternetConnectA / InternetConnectW - может еще какие мысли, варианты?


 
TUser ©   (2009-09-05 13:41) [6]


> расшифруй мысль

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

Тоже не понимаю, почему hosts не катит.


 
Пит   (2009-09-05 13:52) [7]

Игроки сидят по всему миру и у них может быть очень различный доступ к интернету.


 
TUser ©   (2009-09-05 13:59) [8]

значит не судьба


 
Пит   (2009-09-05 14:04) [9]

с DNS - да, не судьба, это уже пройденный этап ))


 
Пит   (2009-09-05 18:20) [10]

Блин, перехват (WSA)connect / (WSA)sendto / InternetConnect ничего не дал. sendto там используется игрой, но видно, что для UDP в голосовом сервере.

Известно, что данные с сайта игрушка забирает через HTTP, запрос я привел выше.

Чем же она пользуется?! Блин... Может кто в курсе насчет DirectX (DirectPlay?) функций, которые могут забирать с WEB сайты данные. Вроде прочитал, что DirectPlay основан на UDP, значит не подходит?

P.S. И еще побочный вопросец, судя по всему забор, анализ статистики написан на некоем языке, выполняется внутри игрушки интерпретатором... Но ведь любые конструкции этого языка для HTTP запроса все равно же приведут к вызовам WinApi функций? Значит, есть какие-то неучтенные мной возможности сделать HTTP запрос...


 
antonn ©   (2009-09-05 22:38) [11]

тут смотрел? http://live.cnews.ru/forum/index.php?showforum=112


 
Пит   (2009-09-05 23:21) [12]

Не смотрел, посмотрел сейчас.

С ходу ничего по теме не нашел. Есть что-то конкретное?


 
test ©   (2009-09-06 08:01) [13]

Пит   (05.09.09 23:21) [12]
Ты бы там ветки почитал, как раз твоя тематика.
http://www.battlefield2.ru/


 
test ©   (2009-09-06 08:03) [14]

test ©   (06.09.09 08:01) [13]
Я про ссылку которую дал в antonn ©   (05.09.09 22:38) [11], они его похоже несколько разу уже разобрали/собрали ))


 
Пит   (2009-09-07 14:28) [15]

похоже не очень


 
Пит   (2009-09-15 20:06) [16]

Удалено модератором
Примечание: Создание пустых сообщений


 
antonn ©   (2009-09-15 21:38) [17]

попытки перехвата путем всяких инжектов и memoryread все равно банятся Панкбастером. так, просто к слову :)


 
Сергей М. ©   (2009-09-15 21:47) [18]


> то ли UDP, то ли TCP... Вполне возможно что по HTTP


Смешались в кучу кони, люди ..


 
Пит   (2009-09-16 11:21) [19]


> попытки перехвата путем всяких инжектов и memoryread все
> равно банятся Панкбастером

это пофигу. Вопрос в том,  почему перехват не состоялся и какие вообще функции может использовать BF для сетевого общения! Ну как то это объясняется же...


 
Сергей М. ©   (2009-09-16 12:35) [20]


> какие вообще функции может использовать BF для сетевого
> общения


Сначала следовало заглянуть в АП процесса на предмет выяснения, какие модули, имеющие отношение к сети, там фигурируют.


 
Пит   (2009-09-16 19:18) [21]

откуда я знаю какие модули / функции еще имеют отношения к сети. Я ведь для этого ветку и завел. Список модулей вот:

Process: BF2.exe Pid: 2652

Name Description Company Name Version
ADVAPI32.dll Расширенная библиотека API Windows 32 Корпорация Майкрософт 5.1.2600.5755
AVIFIL32.dll Библиотека поддержки файлов AVI Корпорация Майкрософт 5.1.2600.5827
BF2.exe  
BF2Audio.dll BF2 SoundEngine Digital Illusions CE Stockholm AB 1.0.0.1
BF2OpenAL.dll OpenAL32 Creative Labs 2.1.8.1
BF2VoipServer.dll  
binkw32.dll RAD Video Tools RAD Game Tools, Inc. 1.5.10.0
c_1252.nls  
CLBCATQ.DLL  Microsoft Corporation 2001.12.4414.700
comctl32.dll User Experience Controls Library Microsoft Corporation 6.0.2900.5512
comctl32.dll Common Controls Library Microsoft Corporation 5.82.2900.5512
COMRes.dll  Корпорация Майкрософт 2001.12.4414.700
CRYPT32.dll API32 криптографии Корпорация Майкрософт 5.131.2600.5512
ctype.nls  
d3d8thk.dll Microsoft Direct3D OS Thunk Layer Microsoft Corporation 5.3.2600.5512
d3d9.dll Microsoft Direct3D Microsoft Corporation 5.3.2600.5512
D3DIM.DLL Microsoft Direct3D Microsoft Corporation 5.1.2600.0
d3dx9_25.dll  Microsoft Corporation 9.6.168.0
dbghelp.dll Windows Image Helper Microsoft Corporation 6.3.11.3
DCIMAN32.dll DCI Manager Microsoft Corporation 5.1.2600.5512
ddraw.dll Microsoft DirectDraw Корпорация Майкрософт 5.3.2600.5512
dice_py.dll  
DINPUT8.dll Microsoft DirectInput Корпорация Майкрософт 5.3.2600.5512
DNSAPI.dll DNS Client API DLL Microsoft Corporation 5.1.2600.5625
DSOUND.dll DirectSound Корпорация Майкрософт 5.3.2600.5512
dxdiagn.dll Средство диагностики Microsoft DirectX Microsoft Corporation 5.3.2600.5512
fastprox.dll WMI Microsoft Corporation 5.1.2600.5755
GDI32.dll GDI Client DLL Microsoft Corporation 5.1.2600.5698
HID.DLL Hid User Library Microsoft Corporation 5.1.2600.5512
hnetcfg.dll Диспетчер конфигурации домашней сети Корпорация Майкрософт 5.1.2600.5512
IMAGEHLP.dll Windows NT Image Helper Microsoft Corporation 5.1.2600.5512
IMM32.DLL Windows XP IMM32 API Client DLL Microsoft Corporation 5.1.2600.5512
imon.dll NOD32 IMON - Internet scanning support Eset  2.70.39.0
kernel32.dll Библиотека клиента Windows NT BASE API Корпорация Майкрософт 5.1.2600.5781
KsUser.dll User CSA Library Microsoft Corporation 5.3.2600.5512
locale.nls  
Memory.dll  
midimap.dll Устройство переназначения MIDI Microsoft Корпорация Майкрософт 5.1.2600.5512
MSACM32.dll Фильтр диспетчера аудиосжатия Microsoft Корпорация Майкрософт 5.1.2600.5512
msacm32.drv Программа переназначения звуковых устройств Корпорация Майкрософт 5.1.2600.0
MSASN1.dll ASN.1 Runtime APIs Microsoft Corporation 5.1.2600.5512
MSCTF.dll Библиотека (DLL) MSCTF-сервера Корпорация Майкрософт 5.1.2600.5512
msctfime.ime Microsoft Text Frame Work Service IME Microsoft Corporation 5.1.2600.5512
MSVCP60.dll Microsoft (R) C++ Runtime Library Microsoft Corporation 6.2.3104.0
MSVCP71.dll Microsoft® C++ Runtime Library Microsoft Corporation 7.10.3077.0
MSVCR71.dll Microsoft® C Runtime Library Microsoft Corporation 7.10.3052.4
msvcrt.dll Windows NT CRT DLL Microsoft Corporation 7.0.2600.5512
MSVFW32.dll Библиотека Microsoft Video для Windows Корпорация Майкрософт 5.1.2600.5512
mswsock.dll Расширение поставщика службы API Microsoft Windows Sockets 2.0 Корпорация Майкрософт 5.1.2600.5625
NETAPI32.dll Net Win32 API DLL Microsoft Corporation 5.1.2600.5694
NovintHFX.dll  
ntdll.dll Системная библиотека NT Корпорация Майкрософт 5.1.2600.5755
NTDSAPI.dll NT5DS Microsoft Corporation 5.1.2600.5512
ole32.dll Microsoft OLE для  Windows Корпорация Майкрософт 5.1.2600.5512
OLEAUT32.dll  Microsoft Corporation 5.1.2600.5512
pbsv.dll  
PCRegExp.dll  
pr_imon.dll  
PSAPI.DLL Process Status Helper Microsoft Corporation 5.1.2600.5512
rasadhlp.dll Remote Access AutoDial Helper Microsoft Corporation 5.1.2600.5512
RendDX9.dll  
RPCRT4.dll Remote Procedure Call Runtime Microsoft Corporation 5.1.2600.5795
Secur32.dll Security Support Provider Interface Microsoft Corporation 5.1.2600.5834
SETUPAPI.DLL Windows Setup API Корпорация Майкрософт 5.1.2600.5512
SHELL32.dll Общая библиотека оболочки Windows Корпорация Майкрософт 6.0.2900.5622
SHLWAPI.dll Библиотека небольших программ оболочки Корпорация Майкрософт 6.0.2900.5512
sortkey.nls  
sorttbls.nls  
SwiffPlayer.dll  
TextureAtlasBuilder.dll  
unicode.nls  
USER32.dll Библиотека клиента USER API Windows XP Корпорация Майкрософт 5.1.2600.5512
uxtheme.dll Библиотека тем UxTheme (Microsoft) Корпорация Майкрософт 6.0.2900.5512
VERSION.dll Version Checking and File Installation Libraries Microsoft Corporation 5.1.2600.5512
wbemcomn.dll WMI Microsoft Corporation 5.1.2600.5512
wbemprox.dll WMI Microsoft Corporation 5.1.2600.5512
wbemsvc.dll WMI Microsoft Corporation 5.1.2600.5512
wdmaud.drv WDM Audio driver mapper Microsoft Corporation 5.1.2600.5512
WINMM.dll MCI API DLL Корпорация Майкрософт 5.1.2600.5512
winrnr.dll LDAP RnR Provider DLL Microsoft Corporation 5.1.2600.5512
WINTRUST.dll Интерфейсы проверки доверия (Microsoft) Корпорация Майкрософт 5.131.2600.5512
WLDAP32.dll Win32 LDAP API DLL Корпорация Майкрософт 5.1.2600.5512
WS2_32.dll Windows Socket 2.0 32-Bit DLL Microsoft Corporation 5.1.2600.5512
WS2HELP.dll Модуль поддержки Windows Socket 2.0 для Windows NT Корпорация Майкрософт 5.1.2600.5512
wshtcpip.dll Windows Sockets Helper DLL Microsoft Corporation 5.1.2600.5512
WSOCK32.dll 32-разрядная библиотека Windows Socket Корпорация Майкрософт 5.1.2600.5512
xpsp2res.dll Сообщения пакета обновления 2 Корпорация Майкрософт 5.1.2600.5512
zlib122.dll


 
Сергей М. ©   (2009-09-16 19:55) [22]


> WS2_32.dll


Этого достаточно.
Лови - и поймаешь)
Не ловится ? Значит не то или не там или не так ловишь.


 
Пит   (2009-09-16 21:16) [23]

Сергей, вы извините, но уже в который раз вы оказываете просто неоценимую помощь. Можно я начну отвечать вам цитатами из уже написанных постов?

Сергей М. ©   (16.09.09 19:55) [22]
> WS2_32.dll


Пит   (05.09.09 12:43)
Я перехватывал функции connect, WSAConnect, SendTo, WSASendTo


---------------------------------------------------------

Сергей М. ©   (16.09.09 19:55) [22]
Этого достаточно.


Пит   (05.09.09 12:43)
Не то


---------------------------------------------------------

Сергей М. ©   (16.09.09 19:55) [22]
Не ловится ? Значит не то или не там или не так ловишь


Пит   (16.09.09 11:21) [19]
Вопрос в том,  почему перехват не состоялся и какие вообще функции может использовать BF для сетевого общения


 
Сергей М. ©   (2009-09-17 09:36) [24]


> перехватывал функции connect


В каком модуле ?
Она фигурирует минимум в двух: ws2_32.dll и winsock32.dll


> SendTo, WSASendTo


Почему не перхватывал send и reсv ?
Они запросто м.б. использованы для UDP-транспорта ..
И опять же в каком модуле перехватывал ?


> Игроки сидят по всему миру


Не понимаю, как ты намерен внедряться в процессы, разбросанные по хостам на бескрайних просторах Тырнета) ..


 
Пит   (2009-09-17 12:43) [25]

Сергей М. ©   (17.09.09 9:36) [24]
В каком модуле ?


все из ws2_32.dll

Сергей М. ©   (17.09.09 9:36) [24]
Почему не перхватывал send и reсv ?
Они запросто м.б. использованы для UDP-транспорта ..


без предварительного connect что-то сильно сомневаюсь в использовании send и recv ))) Так не считаете? )))

Плюс уже выяснил, что запрос идет к WEB-сайту (HTTP), так что UDP отметается.

Сергей М. ©   (17.09.09 9:36) [24]
Не понимаю, как ты намерен внедряться в процессы, разбросанные по хостам на бескрайних просторах Тырнета)


так я что, скрытно что ли это делают? Человек, который хочет поиграть на допустим нашем сервере - качает программку и с помощью нее запускает игру.


 
Сергей М. ©   (2009-09-17 12:53) [26]


> Так не считаете?


Считаю что так.
Так ведь вполне ж вероятно, что connect() и пр. функции вызываются из winsock32.dll, а не из ws2_32.dll !
А ты их ловишь в ws2_32.dll ..


> Человек, который хочет поиграть на допустим нашем сервере


Про "поиграть" ты ничего не говорил - ты про какую-то статистику песню затянул)

А что, адрес sub.domen.com жестко прошит в клиенте ?
Ни сконфигурасить его ни указать прокси нет никакой возможности ?


 
Пит   (2009-09-17 13:19) [27]

Сергей М. ©   (17.09.09 12:53) [26]
Так ведь вполне ж вероятно, что connect() и пр. функции вызываются из winsock32.dll, а не из ws2_32.dll !


ну попробую из winsock32.dll перехватить... Я ведь к тому и задавал вопрос, наверняка что-то лишь прослойка для другого.

Сергей М. ©   (17.09.09 12:53) [26]
Про "поиграть" ты ничего не говорил - ты про какую-то статистику песню затянул


чтобы поиграть СО статистикой )

Сергей М. ©   (17.09.09 12:53) [26]
А что, адрес sub.domen.com жестко прошит в клиенте ?


угу

Сергей М. ©   (17.09.09 12:53) [26]
Ни сконфигурасить его ни указать прокси нет никакой возможности


ну разве я бы тогда задавал вопрос?


 
Сергей М. ©   (2009-09-17 13:26) [28]


> наверняка что-то лишь прослойка для другого


Именно так.


 
Пит   (2009-09-17 13:38) [29]

Сергей М. ©   (17.09.09 12:53) [26]
Так ведь вполне ж вероятно, что connect() и пр. функции вызываются из winsock32.dll, а не из ws2_32.dll !
А ты их ловишь в ws2_32.dll ..


в общем, winsock32.dll - такой библиотеки в моей системе просто нету. Есть wsock32.dll. Но в ней в прямом виде стоят заглушки в ws2_32.dll, адрес экспорта указывает в таблицу импорта:

00002C14    4 0028 connect => ws2_32.connect
...
00002DE9   20 0046 sendto => ws2_32.sendto


Поэтому абсолютно непонятен "совет" про то, что могут вызываться из winsock32.dll какая разница если я перехватываю из ws2_32.dll.

В общем, к чему это было сказано и как это может помочь - непонятно.


 
Сергей М. ©   (2009-09-17 13:45) [30]


> winsock32.dll - такой библиотеки в моей системе просто нету.
>  Есть wsock32.dll


Ну да, я ошибся, разумеется wsock32


> стоят заглушки в ws2_32.dll


Возможно.
Предлагаешь мне держать в памяти эти "тонкости" ?)
Вот ты сам выяснил это - значит уже продвинулся на шаг к решению)

И все-таки send/recv вызываются или нет ?

Подозреваю, что с самим перехватом у тебя что-то не ладно ..


 
Сергей М. ©   (2009-09-17 13:47) [31]

Ты вообще как перехватываешь - модификацией IAT ? EAT ? Того и другого одновременно ?
Последнее наиболее правильный путь.


 
Дмитрий С ©   (2009-09-17 13:52) [32]

А почему бы не перехватить функцию преобразования доменного имени в ip адрес? Какая она там?


 
Дмитрий С ©   (2009-09-17 13:58) [33]

Или как вариант не "пропатчить" exe файл. Заменить BF2Web.gamespy.com на твое, такой же длины:
abcdef....myserver.ru ?


 
Сергей М. ©   (2009-09-17 14:05) [34]


> Дмитрий С ©   (17.09.09 13:52) [32]


А какой смысл ?

Автор же, насколько я понял, хочет чтобы собственно игровой трафик по-прежнему шел на/с sub.domen.com, а трафик статистики он желает впарить клиенту совсем с другого сервера на другом хосте)


 
Дмитрий С ©   (2009-09-17 14:08) [35]


> Сергей М. ©   (17.09.09 14:05) [34]

Ну вдруг это разные домены.


 
Сергей М. ©   (2009-09-17 14:15) [36]


> вдруг это разные домены


Были бы разные - автор бы не выёживался с перехватом)


 
Пит   (2009-09-17 14:19) [37]

Сергей М. ©   (17.09.09 13:45) [30]
Предлагаешь мне держать в памяти эти "тонкости" ?)


а, так ты не знал про заглушки. Я просто почему-то не предполагал, что ты этого не знаешь )

Сергей М. ©   (17.09.09 13:45) [30]
И все-таки send/recv вызываются или нет ?


ну сейчас проверю...

Сергей М. ©   (17.09.09 13:45) [30]
Подозреваю, что с самим перехватом у тебя что-то не ладно ..


очень даже вероятно. Вот моя тема по этой проблеме: http://delphimaster.net/view/15-1252149563/

Сергей М. ©   (17.09.09 13:47) [31]
Ты вообще как перехватываешь - модификацией IAT ? EAT ?


модификация IAT, плюс перехват GetProcAddress, LoadLibrary(Ex)A/W

А как править EAT?! Ставить указатель вне пределов самой DLL?

Дмитрий С ©   (17.09.09 13:52) [32]
А почему бы не перехватить функцию преобразования доменного имени в ip адрес?


да ничего это не даст... Как-то хитро BF2 с сетью взаимодействует...

Дмитрий С ©   (17.09.09 13:58) [33]
Или как вариант не "пропатчить" exe файл


ну это все понятно.. .Мне уже из принципа интересно.


 
antonn ©   (2009-09-17 14:20) [38]


> Автор же, насколько я понял, хочет чтобы собственно игровой
> трафик по-прежнему шел на/с sub.domen.com, а трафик статистики
> он желает впарить клиенту совсем с другого сервера на другом
> хосте)

статистика формируется на том же сервере, где и играется (по окончанию раунда он формирует файл (текстовый) который через некоторое время уйдет на сервер статы ЕА). Можно эту функцию активировать на клиенте, так подымают локальную статистику (при игре с ботами, например, выдаются награды, ботам тоже :)).
У Автора, насколько я понял, хочется чтобы при заходе в игровом меню в панель статистики отображалась информацию не с BFHQ (стат-центр), а с его ресурса. Эта стата не зависит ни от каких игровых серверов, она забирается напрямую с серверов ЕА. Отсюда возникает вопрос что почему бы не воспользоваться другим уровнем перенаправления, прозрачного для игры - например поправить hosts :)
Или если сильно хочется написать прокси :)


 
Сергей М. ©   (2009-09-17 14:30) [39]


> как править EAT?


Ну если ты перехватываешь в IAT хост-модуля вызов GetProcAddress, тогда править EAT импортируемого модуля не требуется, ибо GetProcAddress обращяется именно к EAT.


 
Пит   (2009-09-17 15:50) [40]

Забавно... История разветвляется на два направления )))

1) я попробовал EXE"шник игры более новой версии (вместо версии 1.41 попробовал 1.5). Что забавно - теперь в таблице импорта в модуле BF2.exe (главный файл игры) теперь обнаруживается импорт функций connect и sendto

Но перезапись IAT не происходит. Вот вырезанный код:

PThunk := PImageThunkData( InstanceModule + DWORD(PImportDsc^.FirstThunk) ) ;
         while DWORD(PThunk^.Thunk.thFunction) <> 0 do
           begin
             if Pointer( PThunk^.Thunk.thFunction) = CurrentProc then
               begin
                 VirtualProtect(PThunk^.Thunk.thFunction, SizeOf(PThunk^.Thunk.thFunction),
                   PAGE_EXECUTE_READWRITE, OldProtect) ;
                 WriteProcessMemory(GetCurrentProcess, @PThunk^.Thunk.thFunction, @NewProc,
                   SizeOf(NewProc), Size);
                 VirtualProtect(PThunk^.Thunk.thFunction, SizeOf(PThunk^.Thunk.thFunction),
                   OldProtect, OldProtect);
                 //TODO: правка
                 if Pos("LoadLibrary", FuncName) = 0 then
                 begin
                   s := GsExeName+": mod ""+GetModuleName(InstanceModule)+"", ""+string(CalleeModuleName)+">"+FuncName+"", intercept";
                   OutputDebugStringA(PChar(s));
                 end;
               end;
             inc(PThunk);
           end;


CurrentProc - адрес настоящих функций, NewProc - подмененных.

По коду - VirtualProtect проходит нормально, а вот WriteProcessMemory вызывает ошибку 998, текст: "Неверная попытка доступа к адресу памяти"

Что может быть причиной?

2) старый EXE занимал 7.22 MB, новый занимает 6.25 MB, возможно там сняли какую-то защиту... Вопрос, интересно, почему в старом EXE не находились экспорты функций connect / sendto? Что за защита могла быть?



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.11.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.64 MB
Время: 0.006 c
15-1252752570
Kerk
2009-09-12 14:49
2009.11.15
Мордоморфинг


15-1253048409
Германн
2009-09-16 01:00
2009.11.15
Ещё о Windows CE


1-1223917702
просто так
2008-10-13 21:08
2009.11.15
object`ы в delphi 2009


2-1254207790
GlowSolnce
2009-09-29 11:03
2009.11.15
Приведение типов


2-1254110236
Damon
2009-09-28 07:57
2009.11.15
Список методов в published





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский