PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Исследование программы в отладчике OllyDbg (строки)


Исследование программы в отладчике OllyDbg (строки)

Сообщений 1 страница 12 из 12

1

Вот программка маленькая консольная:

Код:
pass.s = "qwerty3615"
If OpenConsole()
    Print("Enter your password: ")
    Name.s = Input()
      If Name = pass
        ConsoleColor(2, 0)
        PrintN("This password is correct")
        PrintN("Press ENTER to Exit")
      Else
        ConsoleColor(4, 0)
        PrintN("Wrong password")   
        PrintN("Press ENTER to Exit")   
      EndIf
    Input()
  EndIf

Скомпилируем ее в exe.
Запустим отладчик OllyDbg (v.1.10).
В нем File - Open - (наша программка)
Далее ПКМ в вернем левом окне (CPU) вызываем контекстное меню и выбираем
Search for - All referenced text strings
и в открывшемся окне видим:

Text strings referenced in Console_:.code
Address    Disassembly                               Text string
0040100F   CALL <JMP.&MSVCRT.memset>                 (Initial CPU selection)
00401044   MOV EDX, 00404050                         ASCII "qwerty3615"
00401061   PUSH 00404026                             ASCII "Enter your password: "
004010A6   PUSH 0040400D                             ASCII "This password is correct"
004010B1   PUSH 0040403C                             ASCII "Press ENTER to Exit"
004010CD   PUSH 0040405B                             ASCII "Wrong password"
004010D8   PUSH 0040403C                             ASCII "Press ENTER to Exit"

Вот бы этого не было видно так просто?

0

2

Секретные данные можно шифровать и хранить в исполняемом файле в зашифрованом виде.

0

3

Спасибо, Петр.
Можно ли примерчик на основе мною вышеизложенного кода?
Шифровать данные понял как.
А вот как хранить в исполняемом файле в зашифрованном виде - нет.

0

4

Юрий написал(а):

Шифровать данные понял как.

Юрий, если знаешь как шифровать, тогда шифруй, а в код своей программы заноси шифрованные надписи, а перед вызовом(к примеру надписи на гаджет) дешифруй.
Как вариант:

Код:
Procedure.s f(a.s)
   enc.s=a
   dec.s=Space(1024)
   Base64Decoder(@enc, StringByteLength(enc), @dec, 1024)
   ProcedureReturn dec
EndProcedure

pass.s=f("cXdlcnR5MzYxNQ==")
Debug pass
If OpenConsole()
   
   Print(f("RW50ZXIgeW91ciBwYXNzd29yZDo="))
   Name.s=Input()
   If Name=pass
      ConsoleColor(2, 0)
      PrintN(f("VGhpcyBwYXNzd29yZCBpcyBjb3JyZWN0"))
      PrintN(f("UHJlc3MgRU5URVIgdG8gRXhpdA=="))
   Else
      ConsoleColor(4, 0)
      PrintN(f("V3JvbmcgcGFzc3dvcmQ="))
      PrintN(f("UHJlc3MgRU5URVIgdG8gRXhpdA=="))
   EndIf
   Input()
EndIf

Отредактировано haav (04.04.2010 08:54:26)

0

5

Немного не по теме.

В консоль можно выводить русский текст тоже. :)

0

6

Пётр
В консоль можно выводить русский текст тоже.

Нет, не получилось.
Такой вот код:

Код:
pass.s = "qwerty3615"
If OpenConsole()
    Print("Введит пароль: ")
    Name.s = Input()
      If Name = pass
        ConsoleColor(2, 0)
        PrintN("Пароль принят")
        PrintN("Нажмите ENTER для Выхода")
      Else
        ConsoleColor(4, 0)
        PrintN("Плохой пароль")   
        PrintN("Нажмите ENTER для Выхода")   
      EndIf
    Input()
  EndIf

Да, тот самый код, только строки на русском .
В консоли я вижу это:
┬тхфшЄ ярЁюы№:
а должно  => "Введите пароль:"
и все остальные строки так же в кракозябрах

0

7

В настройках компилятора поставь создать юникод приложение. и текст UTF 8 как на рисунке :

http://i056.radikal.ru/1004/ef/44de0fbdb412.jpg

0

8

Нет у меня такого:
- Кодировка исходного файла
- Формат новой строки
Не получилось.
У меня PB v. 4.40

0

9

Юрий написал(а):

Нет у меня такого:- Кодировка исходного файла

В меню файл есть

0

10

Юрий написал(а):

Нет у меня такого:
- Кодировка исходного файла
- Формат новой строки

Начиная с версии 4.40, эту опцию перенесли в меню "Файл".

увеличить

0

11

Ура!
Получилось.
В меню - Файл нашел эти настройки.
Проверил и в отладчике OllyDbg.
Только одна строка теперь светится, почему-то:

Text strings referenced in Console_:.code
Address    Disassembly                               Text string
00401000   PUSH 14                                   (Initial CPU selection)
00401044   MOV EDX, 00404080                         UNICODE "qwerty3615"

Но это уже шифрованием решается. Это уже я понял.

0

12

Что-то такое вот получилось написать:

Код:
str1.s = "Введите пароль: "
str2.s = "Пароль принят"
str3.s = "Плохой пароль"
str4.s = "Нажмите ENTER для выхода"
str5.s = DESFingerprint("Мой_пароль_1221", "1221")
Debug str5.s

If OpenConsole()
    Print(str1)
    Name.s = Input()
      If Name = str5
        ConsoleColor(2, 0)
        PrintN(str2)
        PrintN(str4)
      Else
        ConsoleColor(4, 0)
        PrintN(str3)   
        PrintN(str4)   
      EndIf
    Input()
  EndIf

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Исследование программы в отладчике OllyDbg (строки)