Сейчас на форуме: bartolomeo, -Sanchez- (+4 невидимых) |
eXeL@B —› Вопросы новичков —› UbackPro v7 и его взбрыки |
Посл.ответ | Сообщение |
|
Создано: 26 апреля 2006 12:20 · Личное сообщение · #1 доброго времени суток! у меня стоит такая проблема: есть у меня есть компонент для делфи (http://torry.net/vcl/filedrv/backup/uback7demo.exe 505 кб) он делает бекап файлов .... но у него маленький недостаток: работает только при включеном IDE. крека на седьмую версию я нигде не нашол пробовал взломать по указаниям(статья о взломе dcu файлов), но застопорился вот на чем: я дизасемблирую его Васмом нахожу вызов функции FindWindowa Но тут возникает вопрос что на что в Hex - редакторе надо поменять? в статье написано что меняется 84С0 на 4040 и непонятно откуда это берется !!! ассемблерный код: * Reference To: user32.FindWindowA, Ord:0000h | :00455A1D E81A16FBFF Call 0040703C :00455A22 8BD8 mov ebx, eax :00455A24 6A00 push 00000000 * Possible StringData Ref from Data Obj ->"TPropertyInspector" | :00455A26 688C024700 push 0047028C * Reference To: user32.FindWindowA, Ord:0000h | :00455A2B E80C16FBFF Call 0040703C :00455A30 8BF0 mov esi, eax :00455A32 6A00 push 00000000 * Possible StringData Ref from Data Obj ->"TAppBuilder" | :00455A34 68A0024700 push 004702A0 * Reference To: user32.FindWindowA, Ord:0000h | :00455A39 E8FE15FBFF Call 0040703C :00455A3E 85DB test ebx, ebx :00455A40 7408 je 00455A4A :00455A42 85F6 test esi, esi :00455A44 7404 je 00455A4A :00455A46 85C0 test eax, eax :00455A48 7505 jne 00455A4F * Referenced by a (U)nconditional or (C)onditional Jump at Addresses: |:00455A40(C), :00455A44(C) | :00455A4A 33C0 xor eax, eax :00455A4C 5E pop esi :00455A4D 5B pop ebx :00455A4E C3 ret т.е. если окно найдено - возвращается его хэндл, иначе - 0 в регистр eax в коде наглядно показано что в функцию передаются адреса имен классов а результат возвращается в eax и потом сохраняется в esi, ebx и проверка > :00455A3E 85DB test ebx, ebx > :00455A40 7408 je 00455A4A > :00455A42 85F6 test esi, esi > :00455A44 7404 je 00455A4A > :00455A46 85C0 test eax, eax > :00455A48 7505 jne 00455A4F - Как я понял, что б обойти проверку надо обеспечить чтобы регистры eax,ebx,esi были не нулевые - проще всего это сделать, учитывая что они у вас равны или больше нуля после поиска окон - заменить 2-х байтовую команду test на два однобайтовых inc Типа inc ebx inc ebx > :00455A40 7408 je 00455A4A Подскажите какие шестнадцатизначные значения в этом случае надо менять! |
|
Создано: 26 апреля 2006 12:47 · Личное сообщение · #2 |
|
Создано: 26 апреля 2006 13:42 · Личное сообщение · #3 |
|
Создано: 26 апреля 2006 13:57 · Личное сообщение · #4 |
eXeL@B —› Вопросы новичков —› UbackPro v7 и его взбрыки |