![]() |
eXeL@B —› Основной форум —› Ликбез по VB |
Посл.ответ | Сообщение |
|
Создано: 28 августа 2006 23:20 · Личное сообщение · #1 Занялся тут одной программулиной по собственной инициативе.Там была навесная защита ну с ней покончено (вообщем). Далее обнаружилось что прога написана на VB (натив) а с ним я дело имел редко так вот меня интересуют две вещи. Первая: 1 . 6A FF PUSH -1 2 . 8B55 90 MOV EDX, DWORD PTR SS:[EBP-70] . 8B02 MOV EAX, DWORD PTR DS:[EDX] . 8B4D 90 MOV ECX, DWORD PTR SS:[EBP-70] . 51 PUSH ECX . FF50 20 CALL DWORD PTR DS:[EAX+20] . DBE2 FCLEX <-------------------------------------------- что за херня (век живи век учись!!!) . 8945 8C MOV DWORD PTR SS:[EBP-74], EAX . 837D 8C 00 CMP DWORD PTR SS:[EBP-74], 0 . 7D 1D JGE SHORT xxxxxxxx . 6A 20 PUSH 20 . 68 50AA4200 PUSH xxxxxxxx . 8B55 90 MOV EDX, DWORD PTR SS:[EBP-70] . 52 PUSH EDX . 8B45 8C MOV EAX, DWORD PTR SS:[EBP-74] . 50 PUSH EAX Вторая: Открываю я значит ее GPcH decompiler`om (правда Lite) но и другими тож самое получается а там такая лабудень В секции code (та что с ручкой) все выглядит так Sub_Main - код открывается нормально и так несколько последующих процедур но встречаются и такие vbwCommon, vbwErrHandler - помечены значком х (ни адреса начала ни конца) а они как вы понимаете мне интересны. Так вот разясните что за метода скрытия кода. (Если знаете конечно) ![]() |
|
Создано: 28 августа 2006 23:41 · Личное сообщение · #2 Medsft пишет: . DBE2 FCLEX <-------------------------------------------- что за херня (век живи век учись!!!) Эта инструкция очищает регистр floating-point status, вот поподробней: www.sesp.cse.clrc.ac.uk/html/SoftwareTools/vtune/users_guide/mergedProjects/analyzer_ec/mergedProjects/reference_olh/instruct32_hh/vc87.htm ![]() |
|
Создано: 28 августа 2006 23:43 · Личное сообщение · #3 |
|
Создано: 29 августа 2006 00:05 · Поправил: Medsft · Личное сообщение · #4 За первое спасибо (вроде как понятно что непонятно) The FCLEX instruction checks for and handles any pending unmasked floating-point exceptions before clearing the exception flags; the FNCLEX instruction does not. The assembler issues two instructions for the FCLEX instruction (an FWAIT instruction followed by an FNCLEX instruction), and the processor executes each of these instructions separately. If an exception is generated for either of these instructions, the save EIP points to the instruction that caused the exception.. Ну с англицким у меня беда че записывает? Что будет в EAX`e после выполнения данной команды.(см листинг) По второму там таким значком отмечены не только эти процедуры (я и сам из названия понял о чем они) ну и например вот такая проца vbwProgProtect (смысл не в том что они обозначают задача понять как они спрятаны если декомпилер обозначает их значком x (короче они не открываются) ![]() |
|
Создано: 29 августа 2006 00:37 · Личное сообщение · #5 FCLEX: Обнулить флаги исключений Команда: FNCLEX Назначение: Обнулить флаги исключений без ожидания Команды обнуляют флаги исключений (РЕ, UE, OF, ZE, DE, IE), а также флаги ES, SF и В в регистре состояния FPU. Команда FCLEX, в отличие от FNCLEX, проверяет наличие произошедших и необработанных исключений и обрабатывает их до выполнения. Команда FCLEX полностью эквивалентна (и на самом деле является) WAIT FNCLEX. ----- -=истина где-то рядом=- ![]() |
|
Создано: 29 августа 2006 01:17 · Личное сообщение · #6 |
|
Создано: 29 августа 2006 04:29 · Личное сообщение · #7 Medsft пишет: Открываю я значит ее GPcH decompiler`om (правда Lite) но и другими тож самое получается а там такая лабудень Если декомпиль поставил крестик рядом с процедурой, значит в EXE не прописан ее адрес и найти ее он не может. Такое обычно в native code модулях, в формах все ok ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! ![]() |
|
Создано: 29 августа 2006 05:05 · Личное сообщение · #8 |
|
Создано: 29 августа 2006 10:49 · Личное сообщение · #9 Medsft пишет: Мда вот ответил так ответил это как название есть, а кода нет ? Да, код вызывается по адресам, а таблицы смещений на него нету. Ну то есть как в нормальном EXE ![]() А парсить все другие функции в поисках ссылок на ненайденный код - это только добавление тормознутости процессу декомпиляции и сомнительный результат. Medsft пишет: Типа эти процедуры есть во всех стандартных проектах а в этом не надобны. (Туплю конечно, а случайно не подскажешь где они обычно лежат чтобы я их найдя туда засунул) Процедуры то есть, только таблицы ссылок на них нет, они вызываются по надобности из klheujuj кода как в нормальном приложении ----- Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе! ![]() |
|
Создано: 30 августа 2006 22:32 · Личное сообщение · #10 |
![]() |
eXeL@B —› Основной форум —› Ликбез по VB |