Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: CL | DM;

Вниз

Перенести функцию на Delphi   Найти похожие ветки 

 
Шишкин Илья ©   (2004-11-06 11:24) [0]

Долго искал в интернете нужную мне функцию. Нашёл только под Си на ASM. Так как первый я только начал изучать, а второй для меня темный лес, то прошу помощи у вас. Помогите переделать код под Delphi. Буду очень благодарен.


void depass(char *arg1,long & num,char * buf){
long p1,p2;
asm{
mov edi, [p1]
mov esi, [num]

mov eax,[arg1]
mov [esi+4], eax

mov edx, [buf]
mov ecx, [esi]
and [p1], 0
add edx, 6
shr ecx, 2
mov edi, 14151875h
jz short loc_0_7A0B9BAA
test ecx, ecx
jbe short loc_0_7A0B9BAA
mov [p2], eax

настраиваем переменные и регистры

loc_0_7A0B9B88:
mov eax, [p1]
shl eax, 2
mov ebx, [edx+eax]
xor ebx, edi
mov edi, [p2]
inc [p1]
cmp [p1], ecx
mov [eax+edi], ebx
mov edi, [esi+4]
mov [p2], edi
mov edi, [eax+edi]
jb short loc_0_7A0B9B88

loc_0_7A0B9BAA:

Цикл обработки по 4 байта, то есть берут 4 байта xor"ят их с базовым 14151875h, результат сохраняют, потом xor с результатом и т.д. До тех пор пока длинна не станет меньше 4.

mov ecx, [esi]
and ecx, 3
shl ecx, 3
mov [p2], ecx
jz short loc_0_7A0B9BED
mov eax, [p1]
mov ebx, [esi+4]
shl eax, 2
add ebx, eax
push 20h
mov [p1], ebx
or ebx, 0FFFFFFFFh
shl ebx, cl
mov ecx, [p1]
and [ecx], ebx
mov esi, [esi+4]
pop ecx
or ebx, 0FFFFFFFFh
sub ecx, [p2]
add esi, eax
mov eax, [edx+eax]
shr ebx, cl
shr edi, cl
mov [p1], ecx
and eax, ebx
xor eax, edi
or [esi], eax

loc_0_7A0B9BED:
xor eax, eax
}
}


 
Шишкин Илья ©   (2004-11-06 12:25) [1]

Люди, помогите!


 
KSergey ©   (2004-11-06 12:29) [2]

А че делает-то? Мож есть что готовое?


 
GanibalLector ©   (2004-11-06 12:35) [3]

2 Шишкин Илья
Сями тут и не пахнет...только начало и все.А на Delphi так-же:

asm
...
end;


 
Шишкин Илья ©   (2004-11-06 13:37) [4]

Удалено модератором


 
Шишкин Илья ©   (2004-11-06 13:58) [5]

Удалено модератором


 
Verg ©   (2004-11-06 14:04) [6]

void depass(char *arg1,long & num,char * buf){

>>>

procedure depass( arg1: pchar; var num : longint; buf : pchar);


 
Шишкин Илья ©   (2004-11-09 17:34) [7]

Удалено модератором


 
DiamondShark ©   (2004-11-09 18:19) [8]

А можно словами описать, что функция делать-то должна?


 
Jeer ©   (2004-11-09 18:26) [9]

Это гадание на кофейной гуще.
Такие мои сотрудники пару лет лазали бы по основам.


 
}|{yk ©   (2004-11-09 18:31) [10]

А ты эта, у Дмитрий Олегыча попроси Автошему под ассемблер сделать :)
А что это за
mov esi, [num]
num откуда?


 
Тестировщица ©   (2004-11-09 18:35) [11]

Удалено модератором


 
panov ©   (2004-11-09 18:38) [12]

>Шишкин Илья ©   (06.11.04 11:24)
С пакостями на другой сайт.


 
panov ©   (2004-11-09 18:45) [13]

http://e-docs.net.ru/documentation/hacking_118.php
(с) Тестировщица ©   (09.11.04 18:35) [11]



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

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
3-1099047904
Lamo
2004-10-29 15:05
2004.11.28
EhLib: DBGrigEh.EditButtons.OnClick - Sender ?


1-1100587939
Vilux
2004-11-16 09:52
2004.11.28
Почему программа просто исчезает?


9-1091007837
xdev
2004-07-28 13:43
2004.11.28
Работа с освещением


1-1100526945
<< TEster
2004-11-15 16:55
2004.11.28
Как отличить файл от каталога ?


1-1100000133
xkiller
2004-11-09 14:35
2004.11.28
Как отловить событи, когда курсор вышел за пределы фотографии?