eXeL@B —› Крэки, обсуждения —› ArmAccess.dll |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 09 августа 2006 21:21 · Личное сообщение · #1 Народ, кто знает, что за либа такая? Видел её только однажды, в одном из релизов 4.44 Армадиллы от китайцев. Почему спрашиваю, у меня есть одна прога, кот запакована армадиллой. Прогу распаковал, руками, все запускается, и работает, кроме одной нужной кнопки, при нажатии которой ничего не происходит. И тут натыкаюсь на релиз от одной команды, как раз для этой проги, а релиз представляет из себя SFX архив, распаковывающийся в папку с установленной прогой, и в архиве один единственный файл - ArmAccess.dll И инструкция, "Установите прогу, не перегружайтесь, распакуйте либу в папку, перегружайтесь, и наслаждайтесь" Никак не мог понять, как либа может сломать эту прогу, т.к. там она вообще лишняя, в папке такой нет (т.е. ничего не подменяется), и прога регается вообще с помощью кей файла. Т.е. фактически просто распаковка файла в папку. Ну думаю, дай попробую, распаковал, ребутнулся, и естественно ничего не произошло, прога от этого не зарегалась. Но что самое удивительное, так это то, что заработала та самая кнопка в моем распакованном ЕХЕ-шнике! Что это? Защита армы? И вообще, чего это за такой файл? И что самое интересное, в распакованном моем релизе, hardware ID подменяется глупой надписью, зашитой в эту самую либу. В нераспакованной проге этого нет. ----- 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 |