Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2009, 15:01   #31
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Levsha100
Ну думаю есл пройтись по строкам в ней не так уж и сложно будет узнать пароль или просто подменить вызовы
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2009, 15:02   #32
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Радует хоть то, что чтобы ее взломать придется повозится
Открою часть кода
Код:
cout<<"Vvedite parol"<<endl;
	string parol;
	cin>>parol;
	int buf=0;
	for (int i=0;i<parol.length();i++)
	{
         buf+=(int)parol[i]*255;
	}
Это ввод пароля в программу

Последний раз редактировалось Levsha100; 18.11.2009 в 15:06.
Levsha100 вне форума Ответить с цитированием
Старый 18.11.2009, 15:09   #33
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Levsha100
Вместо этого проще вызовы поменять местами.
Перенаправить вызов ошибки на правильный вызов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2009, 15:15   #34
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Цитата:
Перенаправить вызов ошибки на правильный вызов.
Дело в том, что программа работает на ключе, который достается из пароля, и если он неверный, то программа будет выдавать абракадабру. Этот ключ можно приделать ко всем арифметическим процедурам программы.

Хотя идеальной защиты не существует и эта точно не идеальная.

Последний раз редактировалось Levsha100; 18.11.2009 в 15:17.
Levsha100 вне форума Ответить с цитированием
Старый 18.11.2009, 15:19   #35
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну эта защита не такая уж плохая, но все равно по строкам можно протрассировать до
Код:
/*4010C0*/  PUSH    ESI
/*4010C1*/  LEA     ECX, DWORD PTR SS:[ESP+50]
/*4010C5*/  CALL    DWORD PTR DS:[<&MSVCP90.??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z>]
;Вот эта строка выбирает очередной введенный символ
/*4010CB*/  MOVSX   EDX, BYTE PTR DS:[EAX] 
/*4010CE*/  IMUL    EDX, EDX, 0FF
/*4010D4*/  INC     ESI
/*4010D5*/  ADD     EDI, EDX
/*4010D7*/  CMP     ESI, DWORD PTR SS:[ESP+60]
/*4010DB*/  JB      SHORT CRACKM~1.004010C0
Ну а тут уж с механизмом кодирования разбираться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2009, 16:35   #36
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,069
По умолчанию

Вся проверка пароля в этих строках, как я понял:
Код:
.text:004010DD loc_4010DD:                             
.text:004010DD mov     eax, edi
.text:004010DF and     eax, 80000001h
.text:004010E4 jns     short loc_4010EB
.text:004010E6 dec     eax
.text:004010E7 or      eax, 0FFFFFFFEh
.text:004010EA inc     eax
.text:004010EB
.text:004010EB loc_4010EB:                             
.text:004010EB jnz     short loc_40114A
.text:004010ED lea     ecx, [edi+edi*4]
.text:004010F0 cmp     ecx, 2BD4h
.text:004010F6 jnz     short loc_40114A
.text:004010F8 xor     esi, esi
.text:004010FA lea     ebx, [ebx+0]
.text:00401100
Жирным выделена главная проверка, как мне кажется. Пароль подбирать лень. Вот пропатченная версия с паролем: ",". Без кавычек естественно
Я там у этой главной проверки только 2BD4 на другое число поменял и всё
Изображения
Тип файла: jpg patch.jpg (11.8 Кб, 127 просмотров)
Вложения
Тип файла: rar CrackMePlz patch.rar (4.6 Кб, 8 просмотров)

Последний раз редактировалось pu4koff; 18.11.2009 в 16:38.
pu4koff вне форума Ответить с цитированием
Старый 18.11.2009, 16:40   #37
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Только я забыл еще одну защиту поставить, ясли бы поставил, то вывелись бы абракадабры.
Levsha100 вне форума Ответить с цитированием
Старый 18.11.2009, 16:55   #38
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Сломать - дело нехитрое, фишка же в том, чтоб закейгенить

Код:
   len
   Σ Xi*255 = 2244
   i=0
Тогда после проверки в EDI будет нужное 08C4h, которое успешно пройдёт через эти прыжки
Код:
004010DD  |> 8BC7           MOV EAX, EDI           
004010DF  |. 25 01000080    AND EAX, 80000001      
004010E4  |. 79 05          JNS SHORT CrackMeP.004010EB 
004010E6  |. 48             DEC EAX
004010E7  |. 83C8 FE        OR EAX, FFFFFFFE
004010EA  |. 40             INC EAX
004010EB  |> 75 5D          JNZ SHORT CrackMeP.0040114A
004010ED  |. 8D0CBF         LEA ECX, [EDI+EDI*4]
004010F0  |. 81F9 D42B0000  CMP ECX, 2BD4
004010F6  |. 75 52          JNZ SHORT CrackMeP.0040114A
Вроде можно найти целую кучу строк, удовлетворяющих этому условию
Код:
        len
255 x dx = 2244
        0
Но у меня по математике тройка была, так что не факт
пыщь

Последний раз редактировалось JTG; 18.11.2009 в 17:09.
JTG вне форума Ответить с цитированием
Старый 18.11.2009, 17:07   #39
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Вот самый кривой в мире код:
Код:
int n=42;
	string str="Molodec, odnako!";
	int str2[16];
	for (int i=0;i<16;i++)
	{
        str2[i]=(int)str[i];
	}
	//---------------------
	cout<<"Vvedite parol"<<endl;
	string parol;
	cin>>parol;
	int buf=0;
	for (int i=0;i<parol.length();i++)
	{
         buf+=(int)parol[i]*255;
	}	
	if ((buf%2==0)&&(buf*5==11220))
	{
		n+=92;// Тут нужно было бы связать ключ и это число
		for (int i=0;i<16;i++)
		{
		str[i]=(char)(str2[i]*134/n);
		}
		cout<<str<<endl;
	}else
	{
		cout<<"Oshibka :("<<endl;
	}
	//---------------------
	
	system("pause");
Levsha100 вне форума Ответить с цитированием
Старый 18.11.2009, 17:11   #40
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Так а какой пароль-то? =)
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто сможет помочь с библиотекой в C++ Перец Помощь студентам 7 23.03.2009 20:00
разработать систему защиты локальной компьютерной сети ИванЛоцман Безопасность, Шифрование 4 22.03.2009 22:36
как взломать мою программу kuzmich Общие вопросы Delphi 2 13.02.2009 08:07
Нужен кто-нибудь, кто сможет подсказать, как подступиться к программированию Delphi & C++ Koshka_Kali Помощь студентам 2 30.11.2008 13:23