Есть прога (написана под .NET) которая хранит всю инфу в базе MS SQL Compact Edition. База защищена паролем (при открытие вне программы спрашивается) Вопрос как узнать пароль ?
Дать программеру, или админу по е**лу, сломать ему парочку пальцев и он точно скажет! А если серьезно, то можно разными путями, хукать ф-ции, дебагать прогу.
самый тупой и просто вариант это кейлоггер так же может пароль в памяти программы по опрделенному смещению где нить храниться после ввода, вариантов массу можно подобрать
MoKC0DeR поковыряй прогу с помощью .NET Reflector может по тупости пароль в открытом виде, в программе.
Ну почему по тупости, я конечно не берусь утверждать, но думаю, что пароль в ф-цию коннекта/авторизации БД передается в открытом виде! Хотя ХЗ с .НЕТ не имел дела
Обычно конечно connectionString лежит в открытом виде, но куда интереснее поковырять Query Processor для SQL CE вот поэтому и интересно какая версия СУБД.
не понял, кто то вводит пароль, все клавиши от кейлоггера у тебя окажутся ведь если ты отснифаешь пароль, значит сможешь открыть базу, где я что то не так понял?или ТС имел ввиду что никого троянизировать не надо можно реверснуть саму программу и хукнуть ф-цию которая отвечает за авторизацию
короче поглядел. 1. Возьми OllyDbg 2. Поставь бряк на функе ME_OpenStore в либе sqlceme35.dll если SQL CE v3.5 или в либе sqlceme30.dll если SQL CE v3.1 или v3.0 3. Когда брякнется на этой функе чуть ниже в стеке увидишь UNICODE строку содержащую путь к БД и след. параметр - пароль
Чувак, ты МОЧИШЬ! Объясню на пальцах! Есть прога, она работает с БД, если эту базу открывать не через прогу, просит ПАСС. Здравая логика подсказывает, судя по всему не всем, что пасс забит в прогу, или в конфиги проги. Это уже ближе )
BaGiE Хотелось бы узнать каким образом запустить в OllyDebug .NET-приложение. У меня не получается. Я тоже недавно прогу точил на VB.NET 2005 для работы с базой SQL Server 2005. Строку подключения сохраняю в Settings проекта. Просто интересно стало, можно ли "в принципе" эту строку вытащить оттуда. Пока у меня складывается такое впечатление, что строка эта передается SQL Server-у в зашифрованном виде.
irrona Запустить дотнетовское приложение можно точно также как и обычное Просто из управляемого кода .NET в данном случае всё равно идут вызовы к ядру СУБД, который написан на обычном C++ Поэтому не парясь что там делает дотнет можно отлаживать именно этот неуправляемый код ядра SQL Server Compact. В ольке такая программа сразу запустится, но никто не мешает дальше брякнуться в любом месте, в данном случае в sqlceme**.dll и глядеть что и как Предложенный мною метод в посте #10 будет работать, если .NET приложение использует свой поставщик данных и пространство имен System.Data.SqlServerCe, что скорее всего и есть. Если же используется OLEDB, то он работать не будет и надо глядеть внутрь sqlceoledb**.dll или сразу sqlcese**.dll Насчет обычного SQL Server. Строка подключения не передается SQL Server'у, она передается поставщику данных (или оболочке для поставщиков), который распарсит эту строку, а там уже неизвестно что. По-моему момент авторизации в Microsoft SQL Server (по крайней мере в 2005+ точно) проходит с шифрованием данных по сети. А еще может вообще быть обмен "over SSL" так что в этот момент "стырить" пароль сложно, а вот похукать что-нибудь в дата-провайдере вполне можно. Чтобы не было таких нарушений безопасности и придумали режим Integrated Security (Windows Authentication), а Mixed Mode (+SQL Authentication) по-умолчанию выключен и включать рекомендуется только если доступ к SQL Server будет происходить для систем, отличных от Windows и не поддерживающих данного метода авторизации. Я не знаю что конкретно там за метод, но наверное NTLM\Kerberos. Да и такая сквозная проверка подлинности намного удобнее, а если развернута служба каталогов Active Directory, то совсем отлично будет.
irrona BaGiE на кой черт вам нужен olly когда .NET Reflector полностью раскрывает код .net приложения.
ring4 как раз сам код приложения абсолютно не интересен, неужели непонятно? интересно то, ЧТО он вызывает и КУДА вызывает и отлаживать именно уже там, а ТАМ уже совсем другая каша впринципе разобравшись один раз можно написать мини-утилиту, которая бы автоматом хучила всё это дело и сразу выдавала пароль, например к БД.
mrcrown, megaaa иногда лучше ничего не писАть... увы нету, более того на большинство выдает - "This item appears to be obfuscated and can not be translated." 3.5 Спасибо - ушел пробовать.
Уважаемые гуру! Перерыл весь интернет , и только на Вашем форуме нашел нужное мне решение. В посте № 10 Вы предлагаете решение проблемы доступа к запароленной базе данных MS SQL CE. У меня такая же проблема. Есть прога, использующая MS SQL CE 3.5, но, к сожалению, Ваш метод не помог, обнаружить пароль с помощью OllyDbg так и не удалось, да я и не слишком спец в этом. Не могли бы Вы мне помочь, взглянуть на dll библиотеки от моей программы, доступ к базе которой я не могу получить. все необходимые dll могу выслать или выложить куда скажете. Заранее спасибо, на Вас одна надежда.