SHAutoComplete вызывает падение программы

Обсуждения по программированию для ОС Windows безотносительно используемого языка программирования. Windows NT, Win32, Windows API, ядро и драйверы.
Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

SHAutoComplete вызывает падение программы

Сообщение Qwertiy » 17.02.2013 (Вс) 10:25

Код: Выделить всё
Private Declare Function SHAutoComplete Lib "Shlwapi.dll" (ByVal hWndEdit As Long, ByVal dwFlags As Long) As Long

Private Sub Form_Load()
  SHAutoComplete TxtTest.hWnd, 0
End Sub

SHAutoComplete.zip
Скринвидео
(1.65 МиБ) Скачиваний: 309

Чужая программа, написанная на C++ Builder'е тоже падает...
Как можно с этим бороться?
Возможно, у функции SHAutoComplete есть какие-то аналоги? Или следует передавать ей какие-то флаги, отличные от 0?

Windows 7 x64.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 17.02.2013 (Вс) 19:05

Судя по другим программам, 32-битные падают, а 64-битные - нет...

Переписал тот код на VB.NET.
Код: Выделить всё
Public Class Form1

Private Declare Function SHAutoComplete Lib "Shlwapi.dll" (ByVal hWndEdit As IntPtr, ByVal dwFlags As IntPtr) As IntPtr

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  SHAutoComplete(TxtTest.Handle, 0)
End Sub

End Class
Если компилирую программу под x86 – падает, а если под Any CPU – то нет.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: SHAutoComplete вызывает падение программы

Сообщение FireFenix » 17.02.2013 (Вс) 19:46

Win8 x64, установил VB6, скопировал код, создал TextBox, запустил...
Сколько бы я не пытался вводить / (и любые другие символы) и удалять, ничего не падает
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 17.02.2013 (Вс) 20:17

Тоже начинаю думать, что это какая-то проблема моего компьютера...
Тем не менее, факт есть факт. Среди 5 имеющихся программ (не моих), на которых я проверил, любая 32-битная программа падает, любая 64-битная нет.
Падает стабильно при действиях, записанных на этом видео - сначала нажимается / и некоторое время удерживается, затем всё стирается клавишей Backspace и поштучно нажимается /. Нескольких нажатий хватает, чтобы программа упала. если на втором этапе / удерживать или нажимать часто, то их вводится больше.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 18.02.2013 (Пн) 18:34

Могу уронить так любое 32-битное приложение, в котором используется стандартный диалог открытия файла :(
Похоже, эту тему надо переправлять в администрирование...

PS: Хакер, у тебя ведь всегда полно идей, поделись ими, пожалуйста :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: SHAutoComplete вызывает падение программы

Сообщение Хакер » 19.02.2013 (Вт) 10:27

Qwertiy писал(а):PS: Хакер, у тебя ведь всегда полно идей, поделись ими, пожалуйста :)

Какими именно, если падает оно только на твоей машине? Идея только одна: взять и глянуть под отладчиком, что падает, где как и почему.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 19.02.2013 (Вт) 16:14

Хакер писал(а):Какими именно, если падает оно только на твоей машине?

Идеями причин, по которым оно может падать, желательно вместе со способами их выявления и устранения :)

Хакер писал(а):Идея только одна: взять и глянуть под отладчиком, что падает, где как и почему.

Эм.. А ты видео смотрел? Говори конкретнее.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: SHAutoComplete вызывает падение программы

Сообщение FireFenix » 19.02.2013 (Вт) 17:01

Qwertiy писал(а):Идеями причин, по которым оно может падать, желательно вместе со способами их выявления и устранения :)

Есть идея что какая-то чушь повредила либу или заменила на более старую
Так же есть мнение что нада обновить IE

Qwertiy писал(а):Эм.. А ты видео смотрел? Говори конкретнее.

Качаешь http://www.ollydbg.de/
Запускаешь и открываешь процесс
Трасируешь пока не упадёт, смотришь место где и как :D
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 19.02.2013 (Вт) 17:28

FireFenix писал(а):Так же есть мнение что нада обновить IE

А какая вообще связь с IE. К тому же, я думал, что IE обновляется сам вместес Windows, нет?

FireFenix писал(а):Качаешь http://www.ollydbg.de/
Запускаешь и открываешь процесс
Трасируешь пока не упадёт, смотришь место где и как :D

Что конкретно надо смотреть и чем мне это поможет? VS и так мне ассемблерный код показывает, что с ним делать-то?
К тому же, не пользовался им...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: SHAutoComplete вызывает падение программы

Сообщение Хакер » 19.02.2013 (Вт) 18:04

Qwertiy писал(а):Что конкретно надо смотреть и чем мне это поможет? VS и так мне ассемблерный код показывает, что с ним делать-то?

VS совершенно неюзабелен для «RAW-отладки». Он восхитителен, когда есть отладочные символы и можно отлаживать свою же скомпилированную программу или чужую, или связку из своей и чужой с учётом того, что видишь и свои и чужие сущности и можешь делать языко-специфичные watch-и. А просто смотреть в нём ассемблерный код — это мазохизм.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 19.02.2013 (Вт) 20:02

2013_02_19 21_00.png
И что с этим делать?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: SHAutoComplete вызывает падение программы

Сообщение Хакер » 19.02.2013 (Вт) 20:50

Отлаживать!
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 19.02.2013 (Вт) 20:55

Как, что и зачем?

Admiralisimys
Постоялец
Постоялец
 
Сообщения: 318
Зарегистрирован: 01.06.2009 (Пн) 10:26

Re: SHAutoComplete вызывает падение программы

Сообщение Admiralisimys » 19.02.2013 (Вт) 21:41

Qwertiy, как вариант проходить трассировку (как F11 в студии), или если заведомо известна функция вылета, ставит на ней брейк и смотреть стек
Видео как
http://www.xakep.ru/post/44736/
http://www.xakep.ru/post/44957/
Обзор альтернатив
http://www.xakep.ru/magazine/xa/114/024/1.asp
http://www.xakep.ru/post/50850/default.asp

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: SHAutoComplete вызывает падение программы

Сообщение FireFenix » 20.02.2013 (Ср) 3:53

Qwertiy писал(а):А какая вообще связь с IE. К тому же

Потому что эта либа протянула ноги из Explorer'a и IE для автокомплита.
А как известно вся сетевая чушь так и липнет к IE и его плагинам. Вот и могла повредить/изменить либу

Qwertiy писал(а):я думал, что IE обновляется сам вместес Windows, нет?

Зависит от настроек и действий юзера

Admiralisimys писал(а):http://www.xakep.ru/post/44736/
http://www.xakep.ru/post/44957/
Обзор альтернатив
http://www.xakep.ru/magazine/xa/114/024/1.asp
http://www.xakep.ru/post/50850/default.asp

Какой ещё ксакеп, по нормальному нужно начинать от сюда wasm.ru (Версия OllyDbg 2.х.х существенно отличается от 1.х.х, но все функции интерфейса есть [и даже больше], только в профиль. Но вот хитрожопых плагинов нету, которые есть в 1.х.х)

Admiralisimys писал(а):как вариант проходить трассировку (как F11 в студии), или если заведомо известна функция вылета, ставит на ней брейк и смотреть стек

Изображение Оно же сразу не вылетает, и не факт, что при n-ом брейкпоинте вылетит.

Нужно понять на каких самых минимальных и оптимальных для отладки действиях 100% вылетает
И внутри либы/фукции поставить соответствующий условный брейкпоинт и дальше трасировать до эксепшена
Повторить тоже самое для рабочих параметров и сравнить результаты работы модулей, состояние регистров и стека

Более того, наверняка там не всё так просто и не одна функция замешана, поэтому нужно изучить что там вообще происходит (к примеру можно посотреть графы в IDA или условный C++ код через IDA + Hex-Rays)

Qwertiy писал(а):И что с этим делать?

Что конкретно делать с OllyDbg? Всё просто
1) Изучить как работает функция и куда ещё тянет руки
2) Найти минимум действий, приводящих к крашу
3) Приатачиться к пероцессу. Найти функцию в импорте, пройти на место где возможно установить условный брейкпоинт на действие/аргументы/параметры приводящие к падению
4) Трасировать дальше и искать проблему
5) Понять в чём проблема и искать решения
6) ...
7) Profit!!!

И да - на самом деле это всё не просто и с первого раза всё понять дико сложно.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 20.02.2013 (Ср) 14:48

Я не понимаю. что мне вообще должна дать отладка.
А 32-битный IE вообще принципиально не работает, в отличие от 64-битного...

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: SHAutoComplete вызывает падение программы

Сообщение FireFenix » 20.02.2013 (Ср) 15:04

Qwertiy писал(а):Я не понимаю. что мне вообще должна дать отладка.

Она должна дать ответы в каком модуле/функции крашаться приложения, из-за чего это происходит, и натолкнуть пользователя на решение проблемы.

Ну или если она всёравно ничего не даёт, можешь просто переставить Win и закрыть тему.
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: SHAutoComplete вызывает падение программы

Сообщение iGrok » 20.02.2013 (Ср) 19:50

Qwertiy писал(а):А 32-битный IE вообще принципиально не работает, в отличие от 64-битного...

В смысле?
label:
cli
jmp label

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 20.02.2013 (Ср) 20:58

iGrok писал(а):
Qwertiy писал(а):А 32-битный IE вообще принципиально не работает, в отличие от 64-битного...

В смысле?

Запускается вот так, на нажатие Alt не реагирует, открывать сайты не даёт:
IE x32 1.png
IE x32 1.png (89.46 Кб) Просмотров: 13710

В меню почти всё задисейблено:
IE x32 2.png
IE x32 2.png (45.79 Кб) Просмотров: 13710

При этом 64-битный работает нормально:
IE x64.png
IE x64.png (215.29 Кб) Просмотров: 13710

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: SHAutoComplete вызывает падение программы

Сообщение iGrok » 22.02.2013 (Пт) 20:22

Дык вот тебе и источник проблемы.
label:
cli
jmp label

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 23.02.2013 (Сб) 1:08

iGrok писал(а):Дык вот тебе и источник проблемы.

Ты про IE-то? Предлагаешь переустановить?

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: SHAutoComplete вызывает падение программы

Сообщение iGrok » 23.02.2013 (Сб) 2:22

Ну, что-нибудь типа sfc /scannow для начала. А может и переустановить его, да.
Может, это и разные проблемы, но общие корни видны (косяки с работой не-x64 версий).
label:
cli
jmp label

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 23.02.2013 (Сб) 10:57

Код: Выделить всё
C:\Windows\system32>sfc /VERIFYONLY

Начато сканирование системы.  Этот процесс может занять некоторое время.

Начало стадии проверки при сканировании системы.
Проверка 100% завершена.

Защита ресурсов Windows не обнаружила нарушений целостности.

C:\Windows\system32>

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: SHAutoComplete вызывает падение программы

Сообщение FireFenix » 23.02.2013 (Сб) 21:23

Для начала нужно было бы посчитать хеш либы и посотреть в инете для этой версии, и всех либ из IAT
А лучше всего стрельнуть из дистрибутива
А ещё лучше потом ещё на вирустотал для гарантии
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: SHAutoComplete вызывает падение программы

Сообщение Dmitriy2003 » 23.02.2013 (Сб) 21:37

Qwertiy писал(а):Запускается вот так, на нажатие Alt не реагирует, открывать сайты не даёт:

Safe Mode ?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 27.02.2013 (Ср) 9:28

В безопасном режиме не падает. IE проверить забыл.


Вернуться в Windows-программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

    TopList