Русский / Russian English / Английский

Сейчас на форуме: ajax
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Основной форум —› Помогите взломать прогу!
Посл.ответ Сообщение

Ранг: 0.0 (гость)
Статус: Участник

Создано: 8 декабря 2004 11:09 New!
Цитата · Личное сообщение · #1

Привет всем! Хочу сразу выразить благодарность -= ALEX =-'у за помощь и gost'у за манул по SEH!
Скажите плиз что делает movzx, а то у меня в книге по асму (какой-то самоучитель) про неё ничего не написано
И ещё, привожу из DeDe кусок кода(вычисление серийника) одной проги(точнее System Mechanic 4 Pro), чё-то я тут немного не догоняю
по адресу 004DC56E... здесь есть [ebp-$1C] это типа Result в Delphi а [ebx-$01] - х-ня какая-то...

...
004DC558 8B45FC mov eax, [ebp-$04] < eax := User Name

* Reference to: system.@LStrLen:Integer;
|
004DC55B E8307EF2FF call 00404390
004DC560 8BF0 mov esi, eax
004DC562 85F6 test esi, esi
004DC564 7E57 jle 004DC5BD
004DC566 BB01000000 mov ebx, $00000001
004DC56B 8B45FC mov eax, [ebp-$04]
004DC56E 8A4418FF mov al, byte ptr [eax+ebx-$01]
004DC572 3C46 cmp al, $46
004DC574 7622 jbe 004DC598
004DC576 8B45FC mov eax, [ebp-$04]
004DC579 0FB64418FF movzx eax, byte ptr [eax+ebx-$01]
004DC57E 8D143B lea edx, [ebx+edi]
004DC581 2BC2 sub eax, edx
004DC583 8D55E4 lea edx, [ebp-$1C]

* Reference to: sysutils.IntToStr(Integer):AnsiString;overload;
|
004DC586 E865F2F2FF call 0040B7F0
004DC58B 8B55E4 mov edx, [ebp-$1C]
...

Если надо, могу привести весь исходник функции или какие-то нуную часть, напр. с адреса 004DC5BD или 004DC598...

Ранг: 384.1 (мудрец)
Статус: Участник
www.int3.net

Создано: 8 декабря 2004 11:26 · Поправил: nice New!
Цитата · Личное сообщение · #2

FuckMan
В данном случае это так:
берем байт, который лежит по адресу: [eax+ebx-$01]
и заносим его в EAX, стирая старшие разряды.

Если EAX=90A909CA
movzx eax, byte ptr [eax+ebx-$01] // byte ptr [eax+ebx-$01] -> 41
00000041
______ Всё это команда занулила

Ранг: 0.0 (гость)
Статус: Участник

Создано: 8 декабря 2004 11:53 New!
Цитата · Личное сообщение · #3

nice пишет:
берем байт, который лежит по адресу: [eax+ebx-$01]
и заносим его в EAX, стирая старшие разряды.


а как это реализовать в Delphi?


Ранг: 260.3 (наставник)
Статус: Участник
PPC-PROTECT author

Создано: 8 декабря 2004 12:46 New!
Цитата · Личное сообщение · #4

FuckMan если нужно взять какой-нить символ от строки, то работаешь со строкой как с массивом, к примеру:
var str:string;
s1:string
....
str:='FuckMan';
s1:=str[1];
---
после этого s1 будет содержать символ 'u'
если нужен ascii код сивола, то делаешь chr(str[1])

Ранг: 0.0 (гость)
Статус: Участник

Создано: 8 декабря 2004 21:53 New!
Цитата · Личное сообщение · #5

-= ALEX =-

Хы... я всегда фунцией Copy пользовался
 eXeL@B —› Основной форум —› Помогите взломать прогу!

Видеокурс ВЗЛОМ