![]() |
eXeL@B —› Крэки, обсуждения —› ArmAccess.dll |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 09 августа 2006 21:21 · Личное сообщение · #1 Народ, кто знает, что за либа такая? Видел её только однажды, в одном из релизов 4.44 Армадиллы от китайцев. Почему спрашиваю, у меня есть одна прога, кот запакована армадиллой. Прогу распаковал, руками, все запускается, и работает, кроме одной нужной кнопки, при нажатии которой ничего не происходит. ![]() ![]() ----- The blood swap.... ![]() |
|
Создано: 11 августа 2006 16:09 · Личное сообщение · #2 Johnson Finger То есть хочешь подменить в либе функции чтоб програ работала как retail? Можно и без либы справиться. Посмотри что происходит с кнопкой и фикси. Если либу захочешь пофиксить палюбе надо будет разбираться, если конечно не прокатывает способ зумика ----- Недостаточно только получить знания:надо найти им приложение ![]() |
|
Создано: 11 августа 2006 16:10 · Личное сообщение · #3 |
|
Создано: 11 августа 2006 16:48 · Личное сообщение · #4 |
|
Создано: 11 августа 2006 18:07 · Личное сообщение · #5 То Rascal - нет, я хочу просто чтобы с помощью этой либы в распакованной проге у меня работала кнопка. Править её я не собираюсь. Может только немного косметики. Просто при распаковке прога находится в вечном триале, кнопка активна, но т.к. либа отваливается вместе с распаковкой, то кнопка не работает, значет нужна эта либа. Коцать буду сам ЕХЕ-шник. Или буду корректировать запротекченную прогу, как я уже говорил, триальные файлы она уже перестала сбрасывать и определять по ним срок триала, и в реестре в одном месте перестала вставлять свой ключи. Осталось еще совсем чуть-чуть..... А на счёт MZ надо попробовать..... Способ зумика пока не прокатит т.к. либы еще нет на руках..... То Cigan попробуем ![]() ----- The blood swap.... ![]() |
|
Создано: 11 августа 2006 18:45 · Личное сообщение · #6 |
|
Создано: 11 августа 2006 20:35 · Личное сообщение · #7 |
|
Создано: 11 августа 2006 20:44 · Личное сообщение · #8 Johnson Finger Понял теперь. В запакованной проге кнопка работает. Распакованная нет. Это может быть и проверка на распакеованность самой проги ;) Делай лоадер лучше, или полностью распаковывай и ищи баги. Если библы нет то апи не вызваются, вот и надо найти места вызовов и записать туда нужные возвращаемые значения. Тогда всё ок будет, если не провереятся на распакованность ----- Недостаточно только получить знания:надо найти им приложение ![]() |
|
Создано: 11 августа 2006 20:47 · Личное сообщение · #9 |
|
Создано: 11 августа 2006 21:58 · Личное сообщение · #10 То Rascal - алилуйя, брат! ![]() ![]() Лоадер этого не стоит, все равно делать Ретайл версию, его как вариант, можно будет юзать только для убийства последнего триального ключа. Ладно, как бы там нибыло, в принципе, путь работы я уже себе наметил, всем ответившим огромное спасибо. ----- The blood swap.... ![]() |
|
Создано: 11 августа 2006 23:39 · Личное сообщение · #11 Johnson Finger Ну про либу я знал. В первом же ответе мог это заметить ;) Да и по рейтингу мона догадаться ;)) А на счёт отсутствия проверки распакованности - это можно понять только ииследовав обработчик клика по кнопке. Из него всё можно понять, так что успехов. ----- Недостаточно только получить знания:надо найти им приложение ![]() |
|
Создано: 12 августа 2006 11:42 · Поправил: tundra37 · Личное сообщение · #12 Johnson Finger пишет: Есть еще идеи, как выхватить эту либу из памяти? Так может ее и нет в твоем варианте. Просто есть два механизма защиты. В упакованном варианте кнопка работает только при регистрации и остался вариант с ДЛЛ - просто автор сделал, но не понадобилось или делал для нескольких вариантов. Самое действенное : действительно,во-первых, плясать от клика по кнопке, и ,во-вторых, смотреть, что после успешного LoadLibrary делается. Но, т.к. подкладывание ДЛЛ к нераспакованной ничего не дает, то много шансов, что все-таки библа в памяти есть - LoadLibrary и GetProcAddress - должны дать адрес. ![]() |
|
Создано: 12 августа 2006 13:59 · Личное сообщение · #13 tundra37 Фенька помойму в том, что либа загружена искуственно, то есть система не знает о ней. Арма просто копирует в память библу из себя и фиксит импорт проги, направляя вызовы из прога куда надо в библу. Точно сказать не могу, ибо давно удалил прогу с армой этой, так что ждём инфы от Johnson Finger. Видит ли оля имя модуля ArmAccess в памяти процесса и как получает запакованная проограмма адреса апи функций из этой библы - через GetProcAddress или арма их пишет сама ----- Недостаточно только получить знания:надо найти им приложение ![]() |
|
Создано: 13 августа 2006 12:24 · Личное сообщение · #14 |
|
Создано: 14 августа 2006 02:03 · Поправил: Rascal · Личное сообщение · #15 tundra37 Логично. Без примера могу только гадать и свпоминать. Кста, если мне не изменят память арма палюбе портит импорт. Она может как раз губить импорт этой библы, а вот когда восстанавливаем импорт импрек возвращает всё на круги своя. Т.к. без библы прога упадёт в загрузчике. Так что вот так. ----- Недостаточно только получить знания:надо найти им приложение ![]() |
|
Создано: 11 ноября 2006 14:48 · Поправил: Z0oMiK · Личное сообщение · #16 Johnson Finger можешь еще поэксперементировать ![]() Function Read_Arm_Var(XENV:PCHAR) : String; Var Env_String : ARRAY[0..255] OF CHAR; Begin try Env_String:=''; If (GetEnvironmentVariable(XENV,@Env_String,255)<>0) Then Read_Arm_Var:=Trim(Env_String) Else Read_Arm_Var:=''; except end; End; Function CheckCodeFn(nameFn,codeFn:String) : Boolean; type TCheckCode = function(name,code:PChar) : Boolean; StdCall; Var Handle : THandle; CheckCode : TCheckCode; Begin try CheckCodeFn:=False; Handle:=LoadLibrary('ArmAccess.dll'); If (Handle<>0) Then Begin @CheckCode:=GetProcAddress(Handle,'CheckCode'); If (@Checkcode <> Nil) Then CheckCodeFn:=CheckCode(PChar(NameFn),PChar(CodeFn)); FreeLibrary(Handle); End; except end; End; Далее добавим в проект новую форму (назовем ее RegDlg), разместим на ней 3 Edit’а (для ввода имени и серийника, а третий с атрибутом ReadOnly – для демонстрации аппаратного ключа) и 2 кнопки – “Ok” и “Cancel”. Теперь смело добавляй в меню своей софтины пункт “Регистрация” и обрабатывай клик на нем примерно так: procedure TForm1.Register1Click(Sender: TObject); begin try RegDlg.Edit3.Text:=Read_Arm_Var('FINGERPRINT'); except end; try if RegDlg.ShowModal=mrOk then begin if CheckCodeFn(RegDlg.Edit1.Text,RegDlg.Edit2.Text) then begin MessageBox(0,PChar('Прога зарегистрирована!'),' Регистрация',MB_OK+MB_ICONINFORMATION); Register1.Visible:=false end else MessageBox(0,PChar('Неверный серийный номер!'),' Регистрация',MB_OK+MB_ICONERROR) end; except end; end; Теперь нам бы хотелось вывести инфу о регистрации в окошко “О проге” – нет проблем: procedure TForm1.About1Click(Sender: TObject); var str,un:string; begin try un:=Read_Arm_Var('ALTUSERNAME'); if ((un<>'')and(un<>'DEFAULT')) then str:=un else str:='UNREGISTERED'; except end; try str:='Шароварная суперпрога.' +#13+'' +#13+'Зарегистрирована на имя: '+str+'. ' +#13+'' +#13+'Автор: Screw aka Viktor.'+#13+'Email: integral@mail.ru.'+#13 +'Сайт: screwaka.nm.ru. ' +#13+'' +#13+'Copyright © 2005 by Screwaka.'; MessageBox(0,PChar(str),' О проге',MB_OK+MB_ICONINFORMATION); except end; end; Если ты еще не врубился как проверить, зарегена ли прога, смотри следующий код: procedure TForm1.Button1Click(Sender: TObject); var un:string; begin try un:=Read_Arm_Var('ALTUSERNAME'); if ((un='')or(un='DEFAULT')) then MessageBox(0,PChar('Эта функция работает только в зарегистрированной версии программы.'), ' Зарегистрируйтесь!',MB_OK+MB_ICONERROR) else MessageBox(0,PChar('Спасибо за регистрацию программы!'), ' Зарегистровано!',MB_OK+MB_ICONINFORMATION); except end; end; ![]() |
|
Создано: 01 декабря 2006 05:37 · Личное сообщение · #17 |
|
Создано: 01 декабря 2006 05:56 · Личное сообщение · #18 AlexShot пишет: Стоит ли тратить время и трейсить armaccess.CheckCode(const char *name, const char *code) в надежде сделать keygen? да, давай, некоторым это удалось ;) сразу ищи ресурсы для нахождения приват.ключа для ецдса113 =) AlexShot пишет: (если там осуществляется проверка char *code на соответствие по открытому RSA-ключу char *name) гы! =) ----- Тут не могла быть ваша реклама ![]() |
<< . 1 . 2 . |
![]() |
eXeL@B —› Крэки, обсуждения —› ArmAccess.dll |