Появились проблемы

Issues related to VMProtect
Post Reply
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Появились проблемы

Post by Dinks »

Добрый день.
много лет пользуюсь Вашим продуктом.
Но вот почему то сегодня некоторые приложения которые перезапоковались протектором перестали запускаться (то есть только те которые прям сегодня).

А на некоторые функции он начал писать ошибки.

но еще вчера отлично все работало, и хотел спросить за сегодня не чего не менялось и наверное проблема локально у меня ?=)
Attachments
Error.png
Error.png (31.93 KiB) Viewed 7672 times
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Появились проблемы

Post by Admin »

и хотел спросить за сегодня не чего не менялось и наверное проблема локально у меня ?=)
За сегодня ничего не менялось.
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Re: Появились проблемы

Post by Dinks »

Понял, спасибо.
Тогда не подскажете что это за ошибка, что бы я хотя бы знал где искать. То данный модуль(Unit) я уже год нечего не менял, и вдруг такое :|
Last edited by Dinks on Mon Sep 28, 2020 2:16 pm, edited 1 time in total.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Появились проблемы

Post by Admin »

Поставили новую версию Delphi? Бинарник на почту пришлите.
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Re: Появились проблемы

Post by Dinks »

Ни чего не ставил нового(стоит старенькая Builder c++ berlin), а бинарник это ".vmp" ?
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Появились проблемы

Post by Admin »

Бинарник, который вы грузите в VMprotect (EXE или DLL).
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Re: Появились проблемы

Post by Dinks »

Понял, отправил Вам на почту.
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Re: Появились проблемы

Post by Dinks »

Сейчас проверил абсолютно все приложения(даже пустые проекты) после упаковки перестают работать, внезависемости какие были выбраны настройки защиты.
Если запускаю упакованное приложение на ОС7. операционная система выдает ошибку "APPCRASH". Win 10 не чего не выдает, просто не запускает.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Появились проблемы

Post by Admin »

Какой версией VMprotect вы пользуетесь?
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Re: Появились проблемы

Post by Dinks »

Lite 3.3.1
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Появились проблемы

Post by Admin »

Проверил на 3.5, все ОК.
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Re: Появились проблемы

Post by Dinks »

Ну у меня нет такой версии. Да и 3 года на этой версии (3.3.1) все хорошо работало, не чего не переустанавливал. Может какое то обновление на win пришло.
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Re: Появились проблемы

Post by Dinks »

Ладно, я понимаю что Вы как и я тоже не знаете чем мне помочь. Попробую по шагам в приложениях понять на каком моменте все падает, а потом еще раз тут отпишу с конкретикой, может что Вы и подскажете.
Спасибо.
Dinks
Posts: 28
Joined: Mon Feb 27, 2017 1:01 pm

Re: Появились проблемы

Post by Dinks »

в главном Unit, просто создаю левую глобальную переменную TStringList, и при создании формы в него пихаю случайный текст. И все начинает работать. Вобще не представляю где тут связь.
Admin
Site Admin
Posts: 2566
Joined: Mon Aug 21, 2006 8:19 pm
Location: Russia, E-burg
Contact:

Re: Появились проблемы

Post by Admin »

Проблема в старых версиях скорее всего связана со SWITCH, у которых есть аж 2 вспомогательных таблицы:

Code: Select all

004268D2 cmp eax, 0000009F
004268D7 jnbe 0042B2D6 ↓
004268DD mov al, [eax+004268EA]
004268E3 jmp dword ptr [eax*4+0042698A]
Первая лежит по адресу 004268EA и представляет из себя массив байт:

Code: Select all

.text:004268EA byte_4268EA     db    3Bh,   3Ah,   39h,   38h ; DATA XREF: sub_426834+A9r
.text:004268EA                 db    37h,   36h,   35h,   34h ; indirect table for switch statement
.text:004268EA                 db    33h,   32h,   31h,   30h
.text:004268EA                 db    2Fh,   2Eh,   2Dh,   2Ch
.text:004268EA                 db    2Bh,   2Ah,   29h,   28h
.text:004268EA                 db    27h,   26h,   25h,   24h
.text:004268EA                 db    23h,   22h,   21h,   20h
.text:004268EA                 db    1Fh,   1Eh,   1Dh,   1Ch
.text:004268EA                 db    1Bh,   1Ah,   19h,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,   18h,     0,   17h
.text:004268EA                 db    16h,   15h,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,   14h,   0Bh
.text:004268EA                 db    13h,   12h,   11h,   10h
.text:004268EA                 db    0Fh,   0Eh,   0Dh,   0Ch
.text:004268EA                 db    0Bh,   0Ah,     9,     8
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     0,     0,     0
.text:004268EA                 db      0,     7,     6,     5
.text:004268EA                 db      4,     3,     2,     1
Вторая по адресу 0042698A - это уже таблица с адресами:

Code: Select all

.text:0042698A off_42698A      dd offset loc_42B2D6, offset loc_42AF18, offset loc_42ADA9
.text:0042698A                                         ; DATA XREF: sub_426834+AFr
.text:0042698A                 dd offset loc_42AD43, offset loc_42AB0C, offset loc_42AAC6 ; jump table for switch statement
.text:0042698A                 dd offset loc_42A8D6, offset loc_42A5EF, offset loc_42A5C4
.text:0042698A                 dd offset loc_42A227, offset loc_42A15E, offset loc_428E0F
.text:0042698A                 dd offset loc_42A056, offset loc_429FDA, offset loc_429E5E
.text:0042698A                 dd offset loc_429CD9, offset loc_42972A, offset loc_429301
.text:0042698A                 dd offset loc_429220, offset loc_4291D5, offset loc_428DE2
.text:0042698A                 dd offset loc_428DA6, offset loc_428D4C, offset loc_428A72
.text:0042698A                 dd offset loc_4286A4, offset loc_428687, offset loc_428526
.text:0042698A                 dd offset loc_4284EA, offset loc_42846D, offset loc_4283F5
.text:0042698A                 dd offset loc_4282C5, offset loc_428252, offset loc_4280F0
.text:0042698A                 dd offset loc_4280D5, offset loc_428090, offset loc_427FBD
.text:0042698A                 dd offset loc_427F78, offset loc_427A26, offset loc_4279FD
.text:0042698A                 dd offset loc_4279DA, offset loc_4279AA, offset loc_427970
.text:0042698A                 dd offset loc_427930, offset loc_427869, offset loc_427798
.text:0042698A                 dd offset loc_427719, offset loc_42751E, offset loc_427406
.text:0042698A                 dd offset loc_427320, offset loc_427161, offset loc_427082
.text:0042698A                 dd offset loc_426B3D, offset loc_426B21, offset loc_426B05
.text:0042698A                 dd offset loc_426AE9, offset loc_426ACD, offset loc_426AB1
.text:0042698A                 dd offset loc_426A90, offset loc_426A7F, offset loc_42B2D6
Старая версия такое не умело парсить, поэтому количество адресов во второй таблице определялось эвристически, что могло приводить к дизассемблированию совершенно "левых" адресов.
Post Reply