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

 eXeL@B —› Вопросы новичков —› Arma EnvironmentVariables
Посл.ответ Сообщение


Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 18 июня 2011 16:37
· Личное сообщение · #1

Есть софт http://cloudfront.systweak.com/sysrc_trial.exe его давали в запросах, но не в этом суть.
RegCleanPro.dll накрыта армой. При загрузки ее через отладчик, скажем поставить бряк в проге на:

004D5399 JMP EAX

И словить экспорт функу #18. В ней рега, и проверяется через апи армы VerifyKey.
Если пропатчить VerifyKey в самом лоадере армы по адресу

019FC3D6 MOV BYTE PTR SS:[EBP-421],0 <--- на 1

прога будет зарегена, либо в самой длл любой переход на

1000189D MOV AL,1

Проблема в том, что после анпака армовые переменные накрываются и игноряться, соответственно код в арме и кое-какой в dll не выполняется. Если пропатчить dll в нужной месте, то прога запустится незарегеной, что странно.

Вот анпакнутая dll: http://rghost.ru/11443981

Кто-нибудь сталкивался с таким делом? Что еще пофиксить нужно?

-----
Array[Login..Logout] of Life




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 18 июня 2011 17:01 · Поправил: Vovan666
· Личное сообщение · #2

Ищи в exe CMP EAX,13C727 (раз 10 встречается), это какая-то проверка dll на распакованность.

upd
ан-нет ошибся, что-то там еще.



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 18 июня 2011 17:21 · Поправил: MasterSoft
· Личное сообщение · #3

может пригодиться: Armadillo - Understanding Environment Variables
ну и собственно тулза: ArmEV_inline v1.0




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 18 июня 2011 17:32 · Поправил: Kindly
· Личное сообщение · #4

Vovan666 - точно, есть аж 14 проверок, причем она скорее всего проверяет не саму dll, а армовый код в ней, функа #27. Там уже в ней или после нее в eax записывается значение. Хм, хотелось бы exe не трогать, а попробовать подменить значение в dll Либо нужный код теряется при анпаке..?

MasterSoft, смотрел я это, не то в данном случае, но все равно спасибо

-----
Array[Login..Logout] of Life





Ранг: 127.3 (ветеран), 44thx
Активность: 0.090
Статус: Участник

Создано: 18 июня 2011 17:57
· Личное сообщение · #5

я пытался серийник найти к этой проге. Но чото утонул в этом VerifyKey и ничо не понял

-----
zzz





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 18 июня 2011 18:07 · Поправил: reversecode
· Личное сообщение · #6

а причем там VerifyKey ? если к примеру в USERKEY может лежать rsa ключ
который потом программа подхватывает с другого места через GetEnv..., дешифрует и смотрит , зарегена прога или нет

незнаю как то, но я к примеру разбираю полностью все переменые и смотрю как их использует программа




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 18 июня 2011 18:08 · Поправил: Kindly
· Личное сообщение · #7

zeppe1in - ты не обратил внимание на ?GetHardwareHash@@YAPBDXZ ? Если и найдешь, то для себя только.
reversecode - ты сначала попробуй, потом говори. Единственное что я заметил в пакованой dll, так то что в ALTUSERNAME должен быть в eax = 7, иначе при патчинге в памяти зарегеной не запустится.

-----
Array[Login..Logout] of Life




Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 18 июня 2011 18:52 · Поправил: SReg
· Личное сообщение · #8

Kindly пишет:
И словить экспорт функу #18

там не 1 функа чекают регу

Vovan666 пишет:
Ищи в exe CMP EAX,13C727 (раз 10 встречается), это какая-то проверка dll на распакованность.updан-нет ошибся, что-то там еще.


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




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 18 июня 2011 19:21 · Поправил: Kindly
· Личное сообщение · #9

SReg пишет:
там не 1 функа чекают регу

Может и не одна, но почему два/один байта в памяти все решает? По идее VerifyKey должна возвращать в al 1, а не 0 как в распакованной. Все-таки там что-то зависит от сред в пакованой библе

Про exe более, менее понятно, заинлайнить на крайняк (хоть и не умею толком ), но хотелось бы больше информации о dll... Там реально что-то изменить..? Либо кряк одной ломаной dll не выйдет..?

Такс, меняем в dll тут, точнее патчим если не туда:
10002786 MOV EAX,13C727
и проверочную константу обманываем... Мм. Еще не все...

-----
Array[Login..Logout] of Life




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 18 июня 2011 20:21
· Личное сообщение · #10

Заинлайненая длл-ка
http://zalil.ru/31289365
пропатчил только #18, так что возможно еще выскочит EXPIRED




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

Создано: 19 июня 2011 03:06 · Поправил: ClockMan
· Личное сообщение · #11

Kindly
А ArmAccess.DLL незабыл положить
Красиво расспакованный
--> Link <--

ab7e_19.06.2011_EXELAB.rU.tgz - ArmAccess.DLL

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





Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 19 июня 2011 03:33 · Поправил: Kindly
· Личное сообщение · #12

ClockMan - спасибо. Я уже без нее ))

Вобщем, кому интересно, подменил MOV EAX,13C727 - спасибо Vovan666.
Потом в анпакнутой dll занопил все вызовы процедуры #9 (это пока некрасиво, придумаю покрасивее ), ну и естественно VerifyKey пропатчил. Все!

Added: процедура #9 должна возвращать eax = 00000BB5 вместо нопов

А, и еще, встречаемые инструкции в #27: MOV EAX,DWORD PTR DS:[1004E074]
либо нопте, либо по адресам записывайте заветные 27 C7 13 )))

p.s. запарился ))

-----
Array[Login..Logout] of Life



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