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

 eXeL@B —› Протекторы —› Armadillo Environment Variables
Посл.ответ Сообщение

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

Создано: 27 февраля 2011 12:45
· Личное сообщение · #1

Доброго времени суток ...

Есть прога, на Бейсике написанная. В нее надо засунуть стандартные Armadillo environment:

ALTUSERNAME
USERKEY
VERSION
KEYCREATED

как будет выглядить код на асме ?
нужно ли грузить через loadlibrarya kernel32.dll или другой выход есть ?




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

Создано: 27 февраля 2011 13:24
· Личное сообщение · #2

кернел32 и так всегда загружен. Смотри апи по установке переменных окружения, SetEnvironmentVariable и мсдн в помощь, да дописывай её вызов на асме. В чём конкретно сложность то?




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 27 февраля 2011 13:44
· Личное сообщение · #3

maddmaks пишет:
Есть прога, на Бейсике написанная. В нее надо засунуть стандартные Armadillo environment:

Накуя? Подробнее можно?

-----
aLL rIGHTS rEVERSED!




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

Создано: 27 февраля 2011 13:47
· Личное сообщение · #4

Code:
  1. .data
  2. sALTUSERNAME db "ALTUSERNAME",0
  3. .text
  4. lea eax, UserName
  5. INVOKE SetEnvironmentVariable,ADDR sALTUSERNAME,eax

В развернутом виде:
Code:
  1. lea eax, UserName
  2. push eax
  3. push OFFSET sALTUSERNAME
  4. call SetEnvironmentVariableA


OnLyOnE пишет:
Подробнее можно?

Он распаковал программу, или сделал инлайн патч. Чтобы теперь она работала надо чтобы программа забирала какие угодно левые значения и думала, что зарегестрирована. Во втором случае просто так вызывать SetEnvironmentVariableA нельзя. Надо еще что-нибудь дополнительно патчить.




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

Создано: 27 февраля 2011 14:06 · Поправил: ClockMan
· Личное сообщение · #5

А если прога написана на бейсике то в таблице импорта небудет ниодной айпи с kernel32.dll или ntdll.dll ,автор скорее всего хотел узнать можно ли использовать стандартные Бейсик айпи в замен kernel32.dll
maddmaks пишет:
нужно ли грузить через loadlibrarya kernel32.dll или другой выход есть ?

З.Ы.kernel32.dll полюбому загружена в памяти
Допиши в ручную табличку с вызовом нужних айпи и непарься

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





Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 27 февраля 2011 14:31
· Личное сообщение · #6

int пишет:
Во втором случае просто так вызывать SetEnvironmentVariableA нельзя.

Почему? а нельзя отловить момент когда сама арма использует SetEnvironmentVariableA для установки environment? или вызвать повторно после вызова армой?... как вариант?

-----
aLL rIGHTS rEVERSED!




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

Создано: 27 февраля 2011 14:49 · Поправил: maddmaks
· Личное сообщение · #7

int прав
продукт распакован, надо только эти переменные загрузить ..
ClockMan прав
прога на бейсике - нету ни одной апи ...

Вопрос - как дописанный код выглядит на асме ?
ну типа ...

push :kernel32.dll
call :GetmoduleHandleW
push :SetEnvironmentvariableW
push eax
push :GetprocAddress
mov ebx, eax
push: username
push ALTUSERNAME
call ebx

Это когда апи кернела есть в сабже ...

А если нету вызовов апи, так как продукт на бейсике, и юзает бейсиковскую длл
как мне асмовый код исправить, чтобы работало ?
Простите ...
Я еще не совсем силен ...

Спасибо ..




Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 27 февраля 2011 15:02
· Личное сообщение · #8

maddmaks пишет:
push :kernel32.dllcall :GetmoduleHandleW


с начало ее надо загрузить через LoadLibrary



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

Создано: 27 февраля 2011 15:07
· Личное сообщение · #9

Возьми CFF Explorer и добавь SetEnironmentvariableW(A) После чего в свободном месте (там где много нулей или тем же CFF Explorer добавь новую секцию) напиши примерно следующее:
pushad
pushfd
PUSH offset name;Vasya
PUSH offset altu;ALTUSERNAME
CALL dword[ SetEnironmentvariableW]
......
......
и тд для остальных
popfd
popad
jmp OEP

сохрани это дело и поменяй оеп на этот код



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

Создано: 27 февраля 2011 15:09
· Личное сообщение · #10

OnLyOnE пишет:
Почему?

Арма эти переменные окружения считает своими. Программа будет вызывать не родные GetEnvironmentVariableA/W, а то, на что заменит арма ее импорт, т.е. армовые обработчики, которые только в случае неизвестной переменной будет вызывать системную функцию. Т.е. надо либо заменить импорт на оригинальный, либо вносить патч прямо в армовый обработчик.



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

Создано: 27 февраля 2011 15:10
· Личное сообщение · #11

NIKOLA
значит ко всему писанному добавляем загрузку и все ?

push :kernel32.dll
call :loadLibraryW
push :GetmoduleHandleW
push eax
call :GetprocAddress
push :SetEnvironmentvariableW
push eax
call :GetprocAddress
mov ebx, eax
push: username
push ALTUSERNAME
call ebx

вот так ?



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

Создано: 27 февраля 2011 15:13
· Личное сообщение · #12

Vovan666
я так и сделал ...
int
ну вообще-то на другом продукте это работает.
и триал исчезает, и регистрацию видит ...



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

Создано: 27 февраля 2011 15:17
· Личное сообщение · #13

maddmaks пишет:
ну вообще-то на другом продукте это работает.

А я говорил про случай инлайн патча.



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

Создано: 27 февраля 2011 17:34
· Личное сообщение · #14

Самый простой вариант на распакованных программах "применить" EnvironmentVariable это сделать батник типа:
SET ALTUSERNAME=Vasya
SET USERKEY=1234-1234-1234-1234
Unpacked.exe



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

Создано: 27 февраля 2011 18:02
· Личное сообщение · #15

maddmaks
Ещё можно использовать Armadillo Reducer, там есть Environment Patcher, добавляешь нужные переменные и патчишь распакованную прогу



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

Создано: 27 февраля 2011 20:58
· Личное сообщение · #16

huckfuck
Armadillo Reducer ...
Я так и не понял как он работает ...



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

Создано: 27 февраля 2011 21:17
· Личное сообщение · #17

maddmaks пишет:
Я так и не понял как он работает ...

Он и не сработает в бесике надо W, Reducer делает только А, и то не под все винды.



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

Создано: 28 февраля 2011 07:31
· Личное сообщение · #18

@maddmaks
Если прога писана на бейсике, то перед вызовом Environ, идет загрузка ArmAccess.dll.
Declare Function VerifyKey Lib "ArmAccess.DLL" (UserName$, KeyCode$) As Byte
И править надо, именно ее.
Поищи, примеров было полно.


 eXeL@B —› Протекторы —› Armadillo Environment Variables
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати