Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2020, 11:58   #1
Stud555
Новичок
Джуниор
 
Регистрация: 29.09.2020
Сообщений: 5
По умолчанию Из asm в Delphi

Добрый день.
Помогите разобраться. В коде между чтением из файла и записью результата в ComboBox происходит преобразование строки. Помогите разобраться.

Код:
004A97EF    mov         dword ptr fs:[eax],edx
>004A97F2    jmp         004A97FE
>004A97F4    jmp         @HandleAnyException
 004A97F9    call        @DoneExcept
 004A97FE    mov         dword ptr [ebp-14],1
 004A9805    cmp         dword ptr [ebp-14],0A
>004A9809    jge         004A9853
 004A980B    mov         eax,[004B260C];^gvar_004C43F4:AnsiString
 004A9810    push        dword ptr [eax]
 004A9812    push        4A9A54;'\test0'
 004A9817    lea         edx,[ebp-1F0]
 004A981D    mov         eax,dword ptr [ebp-14]
 004A9820    call        IntToStr
 004A9825    push        dword ptr [ebp-1F0]
 004A982B    push        4A9A64;'.db'
 004A9830    lea         eax,[ebp-1EC]
 004A9836    mov         edx,4
 004A983B    call        @LStrCatN
 004A9840    mov         edx,dword ptr [ebp-1EC]
 004A9846    lea         eax,[ebp-1E0]
 004A984C    call        @Assign
>004A9851    jmp         004A9899
 004A9853    mov         eax,[004B260C];^gvar_004C43F4:AnsiString
 004A9858    push        dword ptr [eax]
 004A985A    push        4A9A70;'\test'
 004A985F    lea         edx,[ebp-1F8]
 004A9865    mov         eax,dword ptr [ebp-14]
 004A9868    call        IntToStr
 004A986D    push        dword ptr [ebp-1F8]
 004A9873    push        4A9A64;'.db'
 004A9878    lea         eax,[ebp-1F4]
 004A987E    mov         edx,4
 004A9883    call        @LStrCatN
 004A9888    mov         edx,dword ptr [ebp-1F4]
 004A988E    lea         eax,[ebp-1E0]
 004A9894    call        @Assign
 004A9899    xor         eax,eax
 004A989B    push        ebp
 004A989C    push        4A99BB
 004A98A1    push        dword ptr fs:[eax]
 004A98A4    mov         dword ptr fs:[eax],esp
 004A98A7    lea         eax,[ebp-1E0]
 004A98AD    call        @ResetText
 004A98B2    call        @_IOTest
 004A98B7    lea         edx,[ebp-0C]
 004A98BA    lea         eax,[ebp-1E0]
 004A98C0    call        @ReadLString
 004A98C5    lea         eax,[ebp-1E0]
 004A98CB    call        @ReadLn
 004A98D0    call        @_IOTest
 004A98D5    lea         eax,[ebp-8]
 004A98D8    push        eax
 004A98D9    mov         eax,[004B25FC];^gvar_004B3D44:TForm1
 004A98DE    mov         eax,dword ptr [eax]
 004A98E0    mov         ecx,1388
 004A98E5    mov         edx,dword ptr [ebp-0C]
 004A98E8    call        004AB734
 004A98ED    lea         eax,[ebp-1FC]
 004A98F3    push        eax
 004A98F4    mov         eax,dword ptr [ebp-8]
 004A98F7    call        @LStrLen
 004A98FC    mov         ecx,eax
 004A98FE    sub         ecx,9
 004A9901    mov         edx,0A
 004A9906    mov         eax,dword ptr [ebp-8]
 004A9909    call        @LStrCopy
 004A990E    mov         edx,dword ptr [ebp-1FC]
 004A9914    mov         eax,dword ptr [ebp-4]
 004A9917    mov         eax,dword ptr [eax+310];TForm2.ComboBox1:TComboBox
 004A991D    mov         eax,dword ptr [eax+23C];TComboBox.FItems:TStrings
 004A9923    mov         ecx,dword ptr [eax]
 004A9925    call        dword ptr [ecx+38];TStrings.Add
 004A9928    cmp         dword ptr [ebp-14],0A
>004A992C    jge         004A9962
 004A992E    push        4A9A80;'test0'
 004A9933    lea         edx,[ebp-200]
 004A9939    mov         eax,dword ptr [ebp-14]
 004A993C    call        IntToStr
 004A9941    push        dword ptr [ebp-200]
 004A9947    push        4A9A64;'.db'
 004A994C    mov         eax,dword ptr [ebp-10]
 004A994F    lea         eax,[eax*4+4B3C74];gvar_004B3C74:array[51] of ?
 004A9956    mov         edx,3
 004A995B    call        @LStrCatN
>004A9960    jmp         004A9994
 004A9962    push        4A9A90;'test'
 004A9967    lea         edx,[ebp-204]
 004A996D    mov         eax,dword ptr [ebp-14]
 004A9970    call        IntToStr
 004A9975    push        dword ptr [ebp-204]
 004A997B    push        4A9A64;'.db'
 004A9980    mov         eax,dword ptr [ebp-10]
 004A9983    lea         eax,[eax*4+4B3C74];gvar_004B3C74:array[51] of ?
 004A998A    mov         edx,3
 004A998F    call        @LStrCatN
 004A9994    mov         eax,dword ptr [ebp-10]
 004A9997    mov         byte ptr [eax+4B3C40],1
 004A999E    inc         dword ptr [ebp-10]
 004A99A1    lea         eax,[ebp-1E0]
 004A99A7    call        @Close
 004A99AC    call        @_IOTest
 004A99B1    xor         eax,eax
 004A99B3    pop         edx
 004A99B4    pop         ecx
 004A99B5    pop         ecx
 004A99B6    mov         dword ptr fs:[eax],edx
>004A99B9    jmp         004A99C5
>004A99BB    jmp         @HandleAnyException
 004A99C0    call        @DoneExcept
Stud555 вне форума Ответить с цитированием
Старый 30.09.2020, 01:55   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

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

К тому же там в коде есть очень подозрительный
Код:
004A98E8    call        004AB734
явно за пределы этого куска
Black Fregat вне форума Ответить с цитированием
Старый 01.10.2020, 14:44   #3
Stud555
Новичок
Джуниор
 
Регистрация: 29.09.2020
Сообщений: 5
По умолчанию

По всей видимости, преобразование происходит в одной из этих процедур:

Код:
//004AB518
{*procedure sub_004AB518(?:?; ?:AnsiString; ?:?; ?:?);
begin
 004AB518    push        ebp
 004AB519    mov         ebp,esp
 004AB51B    push        ecx
 004AB51C    mov         ecx,4
 004AB521    push        0
 004AB523    push        0
 004AB525    dec         ecx
>004AB526    jne         004AB521
 004AB528    push        ecx
 004AB529    xchg        ecx,dword ptr [ebp-4]
 004AB52C    push        ebx
 004AB52D    push        esi
 004AB52E    push        edi
 004AB52F    mov         edi,ecx
 004AB531    mov         dword ptr [ebp-4],edx
 004AB534    mov         eax,dword ptr [ebp-4]
 004AB537    call        @LStrAddRef
 004AB53C    xor         eax,eax
 004AB53E    push        ebp
 004AB53F    push        4AB6F9
 004AB544    push        dword ptr fs:[eax]
 004AB547    mov         dword ptr fs:[eax],esp
 004AB54A    mov         eax,dword ptr [ebp-4]
 004AB54D    call        @LStrLen
 004AB552    mov         ebx,eax
 004AB554    cmp         ebx,0A
>004AB557    jge         004AB566
 004AB559    lea         eax,[ebp-8]
 004AB55C    mov         edx,4AB714;'000'
 004AB561    call        @LStrLAsg
 004AB566    cmp         ebx,9
>004AB569    jle         004AB57D
 004AB56B    cmp         ebx,64
>004AB56E    jge         004AB57D
 004AB570    lea         eax,[ebp-8]
 004AB573    mov         edx,4AB720;'00'
 004AB578    call        @LStrLAsg
 004AB57D    cmp         ebx,63
>004AB580    jle         004AB597
 004AB582    cmp         ebx,3E8
>004AB588    jge         004AB597
 004AB58A    lea         eax,[ebp-8]
 004AB58D    mov         edx,4AB72C;'0'
 004AB592    call        @LStrLAsg
 004AB597    push        dword ptr [ebp-8]
 004AB59A    lea         edx,[ebp-10]
 004AB59D    mov         eax,ebx
 004AB59F    call        IntToStr
 004AB5A4    push        dword ptr [ebp-10]
 004AB5A7    push        dword ptr [ebp-4]
 004AB5AA    lea         eax,[ebp-8]
 004AB5AD    mov         edx,3
 004AB5B2    call        @LStrCatN
 004AB5B7    mov         eax,dword ptr [ebp-8]
 004AB5BA    call        @LStrLen
 004AB5BF    mov         ebx,eax
 004AB5C1    call        Randomize
 004AB5C6    mov         eax,edi
 004AB5C8    sub         eax,ebx
 004AB5CA    test        eax,eax
>004AB5CC    jle         004AB5F8
 004AB5CE    mov         ebx,eax
 004AB5D0    mov         eax,1F
 004AB5D5    call        @RandInt
 004AB5DA    mov         edx,eax
 004AB5DC    add         edx,0E0
 004AB5E2    lea         eax,[ebp-14]
 004AB5E5    call        @LStrFromChar
 004AB5EA    mov         edx,dword ptr [ebp-14]
 004AB5ED    lea         eax,[ebp-8]
 004AB5F0    call        @LStrCat
 004AB5F5    dec         ebx
>004AB5F6    jne         004AB5D0
 004AB5F8    lea         eax,[ebp-0C]
 004AB5FB    call        @LStrClr
 004AB600    mov         dword ptr [ebp-18],edi
 004AB603    fild        dword ptr [ebp-18]
 004AB606    fdiv        dword ptr ds:[4AB730];2:Single
 004AB60C    call        @TRUNC
 004AB611    mov         ebx,eax
 004AB613    test        ebx,ebx
>004AB615    jle         004AB65C
 004AB617    mov         esi,1
 004AB61C    push        dword ptr [ebp-0C]
 004AB61F    lea         eax,[ebp-1C]
 004AB622    mov         edx,esi
 004AB624    add         edx,edx
 004AB626    mov         ecx,dword ptr [ebp-8]
 004AB629    mov         dl,byte ptr [ecx+edx-1]
 004AB62D    call        @LStrFromChar
 004AB632    push        dword ptr [ebp-1C]
 004AB635    lea         eax,[ebp-20]
 004AB638    mov         edx,esi
 004AB63A    add         edx,edx
 004AB63C    mov         ecx,dword ptr [ebp-8]
 004AB63F    mov         dl,byte ptr [ecx+edx-2]
 004AB643    call        @LStrFromChar
 004AB648    push        dword ptr [ebp-20]
 004AB64B    lea         eax,[ebp-0C]
 004AB64E    mov         edx,3
 004AB653    call        @LStrCatN
 004AB658    inc         esi
 004AB659    dec         ebx
>004AB65A    jne         004AB61C
 004AB65C    lea         eax,[ebp-8]
 004AB65F    call        @LStrClr
 004AB664    mov         ebx,edi
 004AB666    test        ebx,ebx
>004AB668    jle         004AB692
 004AB66A    mov         esi,1
 004AB66F    lea         eax,[ebp-24]
 004AB672    lea         edx,[edi+1]
 004AB675    sub         edx,esi
 004AB677    mov         ecx,dword ptr [ebp-0C]
 004AB67A    mov         dl,byte ptr [ecx+edx-1]
 004AB67E    call        @LStrFromChar
 004AB683    mov         edx,dword ptr [ebp-24]
 004AB686    lea         eax,[ebp-8]
 004AB689    call        @LStrCat
 004AB68E    inc         esi
 004AB68F    dec         ebx
>004AB690    jne         004AB66F
 004AB692    lea         eax,[ebp-0C]
 004AB695    call        @LStrClr
 004AB69A    mov         ebx,edi
 004AB69C    test        ebx,ebx
>004AB69E    jle         004AB6C6
 004AB6A0    mov         esi,1
 004AB6A5    lea         eax,[ebp-28]
 004AB6A8    mov         edx,dword ptr [ebp-8]
 004AB6AB    mov         dl,byte ptr [edx+esi-1]
 004AB6AF    xor         dl,10
 004AB6B2    call        @LStrFromChar
 004AB6B7    mov         edx,dword ptr [ebp-28]
 004AB6BA    lea         eax,[ebp-0C]
 004AB6BD    call        @LStrCat
 004AB6C2    inc         esi
 004AB6C3    dec         ebx
>004AB6C4    jne         004AB6A5
 004AB6C6    mov         eax,dword ptr [ebp+8]
 004AB6C9    mov         edx,dword ptr [ebp-0C]
 004AB6CC    call        @LStrAsg
 004AB6D1    xor         eax,eax
 004AB6D3    pop         edx
 004AB6D4    pop         ecx
 004AB6D5    pop         ecx
 004AB6D6    mov         dword ptr fs:[eax],edx
 004AB6D9    push        4AB700
 004AB6DE    lea         eax,[ebp-28]
 004AB6E1    mov         edx,4
 004AB6E6    call        @LStrArrayClr
 004AB6EB    lea         eax,[ebp-14]
 004AB6EE    mov         edx,5
 004AB6F3    call        @LStrArrayClr
 004AB6F8    ret
>004AB6F9    jmp         @HandleFinally
>004AB6FE    jmp         004AB6DE
 004AB700    pop         edi
 004AB701    pop         esi
 004AB702    pop         ebx
 004AB703    mov         esp,ebp
 004AB705    pop         ebp
 004AB706    ret         4
end;*}

Последний раз редактировалось Stud555; 01.10.2020 в 14:55.
Stud555 вне форума Ответить с цитированием
Старый 01.10.2020, 14:45   #4
Stud555
Новичок
Джуниор
 
Регистрация: 29.09.2020
Сообщений: 5
По умолчанию

Код:

//004AB734
{*procedure sub_004AB734(?:?; ?:AnsiString; ?:?; ?:?);
begin
 004AB734    push        ebp
 004AB735    mov         ebp,esp
 004AB737    push        ecx
 004AB738    mov         ecx,4
 004AB73D    push        0
 004AB73F    push        0
 004AB741    dec         ecx
>004AB742    jne         004AB73D
 004AB744    xchg        ecx,dword ptr [ebp-4]
 004AB747    push        ebx
 004AB748    push        esi
 004AB749    push        edi
 004AB74A    mov         edi,ecx
 004AB74C    mov         dword ptr [ebp-4],edx
 004AB74F    mov         eax,dword ptr [ebp-4]
 004AB752    call        @LStrAddRef
 004AB757    xor         eax,eax
 004AB759    push        ebp
 004AB75A    push        4AB895
 004AB75F    push        dword ptr fs:[eax]
 004AB762    mov         dword ptr fs:[eax],esp
 004AB765    lea         eax,[ebp-8]
 004AB768    call        @LStrClr
 004AB76D    mov         ebx,edi
 004AB76F    test        ebx,ebx
>004AB771    jle         004AB799
 004AB773    mov         esi,1
 004AB778    lea         eax,[ebp-10]
 004AB77B    mov         edx,dword ptr [ebp-4]
 004AB77E    mov         dl,byte ptr [edx+esi-1]
 004AB782    xor         dl,10
 004AB785    call        @LStrFromChar
 004AB78A    mov         edx,dword ptr [ebp-10]
 004AB78D    lea         eax,[ebp-8]
 004AB790    call        @LStrCat
 004AB795    inc         esi
 004AB796    dec         ebx
>004AB797    jne         004AB778
 004AB799    lea         eax,[ebp-0C]
 004AB79C    call        @LStrClr
 004AB7A1    mov         ebx,edi
 004AB7A3    test        ebx,ebx
>004AB7A5    jle         004AB7CF
 004AB7A7    mov         esi,1
 004AB7AC    lea         eax,[ebp-14]
 004AB7AF    lea         edx,[edi+1]
 004AB7B2    sub         edx,esi
 004AB7B4    mov         ecx,dword ptr [ebp-8]
 004AB7B7    mov         dl,byte ptr [ecx+edx-1]
 004AB7BB    call        @LStrFromChar
 004AB7C0    mov         edx,dword ptr [ebp-14]
 004AB7C3    lea         eax,[ebp-0C]
 004AB7C6    call        @LStrCat
 004AB7CB    inc         esi
 004AB7CC    dec         ebx
>004AB7CD    jne         004AB7AC
 004AB7CF    lea         eax,[ebp-8]
 004AB7D2    call        @LStrClr
 004AB7D7    mov         dword ptr [ebp-18],edi
 004AB7DA    fild        dword ptr [ebp-18]
 004AB7DD    fdiv        dword ptr ds:[4AB8A8];2:Single
 004AB7E3    call        @TRUNC
 004AB7E8    mov         ebx,eax
 004AB7EA    test        ebx,ebx
>004AB7EC    jle         004AB82F
 004AB7EE    mov         esi,1
 004AB7F3    push        dword ptr [ebp-8]
 004AB7F6    lea         eax,[ebp-1C]
 004AB7F9    mov         edi,esi
 004AB7FB    add         edi,edi
 004AB7FD    mov         edx,dword ptr [ebp-0C]
 004AB800    mov         dl,byte ptr [edx+edi-1]
 004AB804    call        @LStrFromChar
 004AB809    push        dword ptr [ebp-1C]
 004AB80C    lea         eax,[ebp-20]
 004AB80F    mov         edx,dword ptr [ebp-0C]
 004AB812    mov         dl,byte ptr [edx+edi-2]
 004AB816    call        @LStrFromChar
 004AB81B    push        dword ptr [ebp-20]
 004AB81E    lea         eax,[ebp-8]
 004AB821    mov         edx,3
 004AB826    call        @LStrCatN
 004AB82B    inc         esi
 004AB82C    dec         ebx
>004AB82D    jne         004AB7F3
 004AB82F    lea         eax,[ebp-24]
 004AB832    push        eax
 004AB833    mov         ecx,4
 004AB838    mov         edx,1
 004AB83D    mov         eax,dword ptr [ebp-8]
 004AB840    call        @LStrCopy
 004AB845    mov         eax,dword ptr [ebp-24]
 004AB848    call        StrToInt
 004AB84D    mov         ebx,eax
 004AB84F    lea         eax,[ebp-0C]
 004AB852    push        eax
 004AB853    mov         ecx,ebx
 004AB855    mov         edx,5
 004AB85A    mov         eax,dword ptr [ebp-8]
 004AB85D    call        @LStrCopy
 004AB862    mov         eax,dword ptr [ebp+8]
 004AB865    mov         edx,dword ptr [ebp-0C]
 004AB868    call        @LStrAsg
 004AB86D    xor         eax,eax
 004AB86F    pop         edx
 004AB870    pop         ecx
 004AB871    pop         ecx
 004AB872    mov         dword ptr fs:[eax],edx
 004AB875    push        4AB89C
 004AB87A    lea         eax,[ebp-24]
 004AB87D    mov         edx,3
 004AB882    call        @LStrArrayClr
 004AB887    lea         eax,[ebp-14]
 004AB88A    mov         edx,5
 004AB88F    call        @LStrArrayClr
 004AB894    ret
>004AB895    jmp         @HandleFinally
>004AB89A    jmp         004AB87A
 004AB89C    pop         edi
 004AB89D    pop         esi
 004AB89E    pop         ebx
 004AB89F    mov         esp,ebp
 004AB8A1    pop         ebp
 004AB8A2    ret         4
end;*}

Последний раз редактировалось Stud555; 01.10.2020 в 14:54.
Stud555 вне форума Ответить с цитированием
Старый 01.10.2020, 16:14   #5
Stud555
Новичок
Джуниор
 
Регистрация: 29.09.2020
Сообщений: 5
По умолчанию

Stud555,

Вот ещё нашел функцию, которая по всей видимости записывает. К стати все строки в считываемом и записываемом файле имеют длину 5000 символов.

Код:
//004AF324
{*
 004AF324    push        ebp
 004AF325    mov         ebp,esp
 004AF327    xor         eax,eax
 004AF329    push        ebp
 004AF32A    push        4AF39E
 004AF32F    push        dword ptr fs:[eax]
 004AF332    mov         dword ptr fs:[eax],esp
 004AF335    inc         dword ptr ds:[4D2E60]
>004AF33B    jne         004AF390
 004AF33D    mov         eax,4C43FC;gvar_004C43FC:array[5000] of ?
 004AF342    mov         ecx,1388
 004AF347    mov         edx,dword ptr ds:[4A9B1C];document
 004AF34D    call        @FinalizeArray
 004AF352    mov         eax,4C43F8;gvar_004C43F8:AnsiString
 004AF357    call        @LStrClr
 004AF35C    mov         eax,4C43F4;gvar_004C43F4:AnsiString
 004AF361    call        @LStrClr
 004AF366    mov         eax,4BD054;gvar_004BD054:Pointer
 004AF36B    mov         ecx,0C8
 004AF370    mov         edx,dword ptr ds:[4A9AFC];vo
 004AF376    call        @FinalizeArray
 004AF37B    mov         eax,4B5CB4;gvar_004B5CB4:Pointer
 004AF380    mov         ecx,0C8
 004AF385    mov         edx,dword ptr ds:[4A9AFC];vo
 004AF38B    call        @FinalizeArray
 004AF390    xor         eax,eax
 004AF392    pop         edx
 004AF393    pop         ecx
 004AF394    pop         ecx
 004AF395    mov         dword ptr fs:[eax],edx
 004AF398    push        4AF3A5
 004AF39D    ret
>004AF39E    jmp         @HandleFinally
>004AF3A3    jmp         004AF39D
 004AF3A5    pop         ebp
 004AF3A6    ret
*}
Stud555 вне форума Ответить с цитированием
Старый 01.10.2020, 18:10   #6
AbakBarama
Пользователь
 
Регистрация: 12.05.2011
Сообщений: 57
По умолчанию

Stud555, выкладывать надо не листинги, а саму программу + 1..2 примера зашифрованных файлов.

З. Ы. Похоже на программу для тестирования нерадивых студентов, которая когда-то попадала мне в руки. Там тоже все строки были длиной 5000 + CRLF.
AbakBarama вне форума Ответить с цитированием
Старый 05.10.2020, 12:46   #7
Stud555
Новичок
Джуниор
 
Регистрация: 29.09.2020
Сообщений: 5
По умолчанию

Кому не сложно, помогите разобраться. За выходные всю голову сломал, но так ни на шаг к цели ближе не стал. Расскажите, кто и что тут делает:

Подробнее написано в ассемблерном коде.
004AB778 цикл с ксором
004AB7AC цикл с реверзом
004AB7F3 цикл с перестановкой байт
Stud555 вне форума Ответить с цитированием
Старый 05.10.2020, 19:38   #8
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

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

Вам же уже писали:
Цитата:
Сообщение от AbakBarama Посмотреть сообщение
выкладывать надо не листинги, а саму программу + 1..2 примера зашифрованных файлов.
Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Вы бы хотя бы показали содержимое файла и что из него выходит..
Black Fregat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi] Разработать программу на языке DELPHI реализация метода ньютона нахождения решения уравнений MarinaTelpiz Помощь студентам 3 12.05.2017 15:43
Не изменяется интерфейс моей программы при переходе с Delphi 7 на Delphi 2010 Elvisnya Общие вопросы Delphi 3 28.04.2011 15:59
Народ у каво есть программа Биоритмов в Delphi или хотя бы исходник для Delphi Student_174 Помощь студентам 0 20.04.2011 12:53
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24