Сейчас на форуме: asfa, _MBK_ (+7 невидимых)

 eXeL@B —› Вопросы новичков —› Пытаюсь научиться взламывать программы
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 06 мая 2009 15:22
· Личное сообщение · #1

Всем привет!
Заинтересовала меня эта тема. Решил научиться и начать с простой программы: SpadeEye.
Сама программа позволяет производить поиск столов в онлайн покере. Ссылка на офисайт
Буду здесь понемногу продвигаться вперед и задавать глупые вопросы.
1. Скачал ее и установил
2. Посмотрел SpadeEye.exe в PEiD - пишет "Nothing found", т.е., как я понимаю, он не запакован и защитой является только серийный код.
3. Триальный период уже закончился и теперь, если запустить SpadeEye.exe, то вылезает окошко, где предлагается ввести серийный номер.
4. Ввожу в поле "Key: " любые цифры. Появляется окно с надписью: "Error: Invalid key."
5. Дальше открываю эту программу в Ollydbg.
В модуле SpadeEye сделал Search for -> All referenced text strings -> там провел поиск по "Invalid key", но ничего не нашел, как и в других модулях - "fbclient", "LIBMYSQL", "LIBPQ", "mysqlpp", "QtCore4", "QtGui4"
6. Открыл список окон: View -> Windows - тут видно как раз 2 окна регистрации: "Trial period over" и "Registration"
Скриншоты в pdf-файле приложил к сообщению.
---
На этом пока все застопорилось. Чувствую, что надо копать в сторону указанных в Windows хэндлов для этих самых окон регистрации.
Пойду дальше читать.


3a84_06.05.2009_CRACKLAB.rU.tgz - screenshots.pdf



Ранг: 22.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 06 мая 2009 15:54
· Личное сообщение · #2

Неудачную ты жертву для обучения нашёл - прожка эта написана на .NET, а значит совершенно иной подход ко взлому нужен, начни обучение с какой-нибудь другой программы



Ранг: 49.3 (посетитель), 43thx
Активность: 0.060
Статус: Участник

Создано: 06 мая 2009 16:19
· Личное сообщение · #3

dog пишет: PEiD - пишет "Nothing found"
RDG packer detector пишет, что это .NET, в чем легко убедится по наличию .net директории. Читай дальше про дотнет.
K_O_T пишет: Неудачную ты жертву для обучения нашёл
Не факт. Почему бы не начать с байткода?



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 мая 2009 11:40
· Личное сообщение · #4

Спасибо за ответы. правда, сразу сбивающие с толку
А что именно дальше читать? Не обязательно ссылки, хотя бы по каким словам искать?



Ранг: 49.3 (посетитель), 43thx
Активность: 0.060
Статус: Участник

Создано: 08 мая 2009 12:40 · Поправил: user_
· Личное сообщение · #5

dog пишет: А что именно дальше читать?

Этот топик посмотри, но на прогу свою забей пока лучше.
А вобще есть специальная тема -Ссылки на программы с простой защитой v2-



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 мая 2009 13:14
· Личное сообщение · #6

Спасибо за подсказку!



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 08 мая 2009 13:16
· Личное сообщение · #7

K_O_T пишет:
прожка эта написана на .NET, а значит совершенно иной подход ко взлому нужен, начни обучение с какой-нибудь другой программы


Категориски против. Плоховолк до сих пор не может выучить асм. А вот проги на .NET прекрасно ломает. Для случая .NET прог нужен декомпиль. Мой выбор - Reflector. Скачай его и опробуй на программах. Я потом поищу какие жертвы лучше всего для обучения подойдут. Если есть вопросы по .NET - стучи в асю или ЛС.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 мая 2009 14:56
· Личное сообщение · #8

Да, уже разбираюсь с .NET Reflector'ом.
Пока нашел там строку: "return ((objA == objB) || (((objA != null) && (objB != null)) && objA.Equals(objB)));", где
objA.Equals(objB) может сравнивать objA и стандартный метод GetHashCode, который берется из objB (а он, как я понимаю, "Machinecode: 'SGLF-FJJO-IOE'" или "SGLF-FJJO-IOE" ). Теперь надо написать программу в студии (которой у меня нет) для этого метода и проверить.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 мая 2009 16:48 · Поправил: dog
· Личное сообщение · #9

Кажется, нашел саму функцию, отвечающую за проверку ключа: grabber.slot_reg
В ней такие строки:
Code:
  1. if (flag)
  2.             {
  3.                 $ArrayType$$$BY0GE@D e$$$byge@d;
  4.                 QString.append(&str14, &??_C@_0GG@KCKEHHGP@Thank?5you?5for?5registering?5your?5c@);
  5.                 ...
  6.             }
  7.             else
  8.             {
  9.                 QString.append(&str14, &??_C@_0BE@MJKBHGBM@Error?3?5Invalid?5key?4?$AA@);
  10.             }

Видимо, нужно как-то перекомпилировать в:
Code:
  1. if (1)...

Кстати, еще можно разобраться как работает эта функция и вручную вычислить правильный sn.
Буду разбираться дальше.



Ранг: 49.3 (посетитель), 43thx
Активность: 0.060
Статус: Участник

Создано: 08 мая 2009 17:12
· Личное сообщение · #10

dog пишет: Видимо, нужно как-то перекомпилировать
Гоняй плагин Reflexil, он позволяет править il-инструкции.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 08 мая 2009 21:38 · Поправил: dog
· Личное сообщение · #11

Столкнулся с проблемой reflexil не позволяет редактировать модуль grabber.slot_reg
Скриншот приложил к сообщению.

9311_08.05.2009_CRACKLAB.rU.tgz - reflexil_problem.PNG



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 мая 2009 00:56 · Поправил: dog
· Личное сообщение · #12

Похоже, что проблема в том, что Reflexil не распознает qt. Какие есть варианты?



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 мая 2009 13:46 · Поправил: dog
· Личное сообщение · #13

Дисассемблером ildasm получил msil-файл. Нашел там такие строки:
Code:
  1.     
  2.     IL_066b:  brfalse.s  IL_06cd
  3.     IL_066d:  ldloca.s   V_32
  4.     IL_066f:  ldsflda    valuetype '<CppImplementationDetails>'.$ArrayType$$$BY0GG@$$CBD modopt([mscorlib]System.Runtime.CompilerServices.IsConst) '??_C@_0GG@KCKEHHGP@Thank?5you?5for?5registering?5your?5c@'
  5.     IL_0679:  pop
  6.     ...
  7.     IL_06cd:  ldloca.s   V_32
  8.     IL_06cf:  ldsflda    valuetype '<CppImplementationDetails>'.$ArrayType$$$BY0BE@$$CBD modopt([mscorlib]System.Runtime.CompilerServices.IsConst) '??_C@_0BE@MJKBHGBM@Error?3?5Invalid?5key?4?$AA@'
  9.     
  10.     IL_06d9:  pop

Похоже, это то, что я искал, brfalse - это условный переход. Поменял:
Code:
  1.     IL_066b:  brfalse.s  IL_06cd
  2. на 
  3.     IL_066b:  brtrue.s  IL_06cd

Теперь непонятно, как скомпилировать обратно.
Code:
  1. #ilasm test.txt
  2. ...
  3. error -- Cannot compile native/unmanaged method
  4. ...
  5. error -- Local (embedded native) PInvoke method, the resulting PE file is unusable

Чем все-таки можно скомпилировать?
Использовался Microsoft.NET Framework v2.0.50727



Ранг: 49.3 (посетитель), 43thx
Активность: 0.060
Статус: Участник

Создано: 11 мая 2009 14:12 · Поправил: user_
· Личное сообщение · #14

[del]



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 11 мая 2009 14:19
· Личное сообщение · #15

Именно этим и компилил.
+ потом еще установленным в системе .net'ом - результат тот же.
---
Может дело в qt?



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 мая 2009 21:29 · Поправил: dog
· Личное сообщение · #16

Может попробовать установить Free Qt SDK и скормить библиотеки ilasm'у через /include ?
Я застопорился Помогите с идеями
Нашел в коде cil места, которые нужно изменить, даже понял как и на что. А скомпилить обратно не получается.
Еще есть вариант понять принцип формирования ключа, но я в с++ не силен, хотя эту часть кода тоже нашел с помощью reflector'а. Собираюсь этим заняться сразу после успешного изменения cil-кода.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 мая 2009 17:28 · Поправил: dog
· Личное сообщение · #17

Ап!
Уже пали программы: на .NET и на Java, что не может не радовать.
Но с первой программой так ничего и не получилось.
---
Может создать тему с вопросом компиляции msil и qt в "Крэки, обсуждения" ?



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 мая 2009 09:10
· Личное сообщение · #18

Всем привет!
Хочу попробовать программу из темы на этой странице форума, только поновее версию. Упакована она с помощью Armadillo. В теме написано, что можно получить распакованный дамп с помощью Armageddon. Но я совсем не понял как его сделать И разные опции выставлял и ставил на ночь... Помогите плз советом. Кстати, этой программой я бы пользовался, в отличие от предыдущих, поэтому вдвойне интереснее + научиться пользоваться ollydbg.
Вот что выдает ArmaFP:
Code:
  1. <- 25-05-2009 10:07:50 - [1.9] ->
  2. C:\Program Files\PokerTracker 3\PokerTracker.exe
  3. Protected Armadillo
  4. Protection system (Professional)
  5. <Protection Options>
  6. Debug-Blocker
  7. Enable Import Table Elimination
  8. Enable Strategic Code Splicing
  9. <Backup Key Options>
  10. Variable Backup Keys
  11. <Compression Options>
  12. Better/Slower Compression
  13. <Other Options>
  14. Version 5.42 19-02-2008
  15. <- Elapsed Time 00h 00m 02s 031ms ->





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 25 мая 2009 16:21
· Личное сообщение · #19

dog пишет:
Упакована она с помощью Armadillo

dog пишет:
И разные опции выставлял и ставил на ночь...
Не нате дрожжи ставил
Вот --> Тут <-- расспакованный файл

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 мая 2009 16:33
· Личное сообщение · #20

Огромное спасибо за помощь! Теперь буду снимать триал.
Но хотелось бы научиться самому, для этого и тему эту создавал Можно хотя бы пару слов в подсказку?



Ранг: 0.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 29 сентября 2009 18:33
· Личное сообщение · #21

ты так и не смог сломать эту программу? у меня есть кейген к ней - но вышла новая версия этой проги - что то там поменяли - и кейген уже не работает - может дать тебе кейген посмотришь как там все делали?




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 30 сентября 2009 15:29
· Личное сообщение · #22

Риперство не одобряется!

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 01 октября 2009 13:15
· Личное сообщение · #23

Trush
Археолог

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 01 октября 2009 17:53
· Личное сообщение · #24

Учитывая, что автор уже пол года здесь не писал, топик закрою.


 eXeL@B —› Вопросы новичков —› Пытаюсь научиться взламывать программы
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати