Посл.ответ |
Сообщение |
Ранг: 11.9 (новичок), 2thx Активность: 0.01↘0 Статус: Участник
|
Создано: 27 февраля 2011 12:45 · Личное сообщение · #1
Доброго времени суток ... Есть прога, на Бейсике написанная. В нее надо засунуть стандартные Armadillo environment: ALTUSERNAME USERKEY VERSION KEYCREATED как будет выглядить код на асме ? нужно ли грузить через loadlibrarya kernel32.dll или другой выход есть ?
| Сообщение посчитали полезным: |
|
Ранг: 2014.5 (!!!!), 1278thx Активность: 1.34↘0.25 Статус: Модератор retired
|
Создано: 27 февраля 2011 13:24 · Личное сообщение · #2
кернел32 и так всегда загружен. Смотри апи по установке переменных окружения, SetEnvironmentVariable и мсдн в помощь, да дописывай её вызов на асме. В чём конкретно сложность то?
| Сообщение посчитали полезным: |
Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 27 февраля 2011 13:44 · Личное сообщение · #3
maddmaks пишет: Есть прога, на Бейсике написанная. В нее надо засунуть стандартные Armadillo environment: Накуя? Подробнее можно?
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |
Ранг: 101.0 (ветеран), 344thx Активность: 1.15↘0 Статус: Участник
|
Создано: 27 февраля 2011 13:47 · Личное сообщение · #4
В развернутом виде:
OnLyOnE пишет: Подробнее можно? Он распаковал программу, или сделал инлайн патч. Чтобы теперь она работала надо чтобы программа забирала какие угодно левые значения и думала, что зарегестрирована. Во втором случае просто так вызывать SetEnvironmentVariableA нельзя. Надо еще что-нибудь дополнительно патчить.
| Сообщение посчитали полезным: |
Ранг: 568.2 (!), 464thx Активность: 0.55↗0.57 Статус: Участник оптимист
|
Создано: 27 февраля 2011 14:06 · Поправил: ClockMan · Личное сообщение · #5
А если прога написана на бейсике то в таблице импорта небудет ниодной айпи с kernel32.dll или ntdll.dll ,автор скорее всего хотел узнать можно ли использовать стандартные Бейсик айпи в замен kernel32.dll maddmaks пишет: нужно ли грузить через loadlibrarya kernel32.dll или другой выход есть ? З.Ы.kernel32.dll полюбому загружена в памяти Допиши в ручную табличку с вызовом нужних айпи и непарься
----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. | Сообщение посчитали полезным: |
Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 27 февраля 2011 14:31 · Личное сообщение · #6
int пишет: Во втором случае просто так вызывать SetEnvironmentVariableA нельзя. Почему? а нельзя отловить момент когда сама арма использует SetEnvironmentVariableA для установки environment? или вызвать повторно после вызова армой?... как вариант?
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |
Ранг: 11.9 (новичок), 2thx Активность: 0.01↘0 Статус: Участник
|
Создано: 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.26↘0 Статус: Участник
|
Создано: 27 февраля 2011 15:02 · Личное сообщение · #8
maddmaks пишет: push :kernel32.dllcall :GetmoduleHandleW с начало ее надо загрузить через LoadLibrary
| Сообщение посчитали полезным: |
Ранг: 617.3 (!), 677thx Активность: 0.54↘0 Статус: Участник
|
Создано: 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.15↘0 Статус: Участник
|
Создано: 27 февраля 2011 15:09 · Личное сообщение · #10
OnLyOnE пишет: Почему?Арма эти переменные окружения считает своими. Программа будет вызывать не родные GetEnvironmentVariableA/W, а то, на что заменит арма ее импорт, т.е. армовые обработчики, которые только в случае неизвестной переменной будет вызывать системную функцию. Т.е. надо либо заменить импорт на оригинальный, либо вносить патч прямо в армовый обработчик.
| Сообщение посчитали полезным: |
Ранг: 11.9 (новичок), 2thx Активность: 0.01↘0 Статус: Участник
|
Создано: 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.01↘0 Статус: Участник
|
Создано: 27 февраля 2011 15:13 · Личное сообщение · #12
Vovan666я так и сделал ... intну вообще-то на другом продукте это работает. и триал исчезает, и регистрацию видит ...
| Сообщение посчитали полезным: |
Ранг: 101.0 (ветеран), 344thx Активность: 1.15↘0 Статус: Участник
|
Создано: 27 февраля 2011 15:17 · Личное сообщение · #13
maddmaks пишет: ну вообще-то на другом продукте это работает. А я говорил про случай инлайн патча.
| Сообщение посчитали полезным: |
Ранг: 617.3 (!), 677thx Активность: 0.54↘0 Статус: Участник
|
Создано: 27 февраля 2011 17:34 · Личное сообщение · #14
Самый простой вариант на распакованных программах "применить" EnvironmentVariable это сделать батник типа: SET ALTUSERNAME=Vasya SET USERKEY=1234-1234-1234-1234 Unpacked.exe
| Сообщение посчитали полезным: |
Ранг: 49.6 (посетитель), 9thx Активность: 0.03↘0 Статус: Участник
|
Создано: 27 февраля 2011 18:02 · Личное сообщение · #15
maddmaksЕщё можно использовать Armadillo Reducer, там есть Environment Patcher, добавляешь нужные переменные и патчишь распакованную прогу
| Сообщение посчитали полезным: |
Ранг: 11.9 (новичок), 2thx Активность: 0.01↘0 Статус: Участник
|
Создано: 27 февраля 2011 20:58 · Личное сообщение · #16
huckfuckArmadillo Reducer ... Я так и не понял как он работает ...
| Сообщение посчитали полезным: |
Ранг: 617.3 (!), 677thx Активность: 0.54↘0 Статус: Участник
|
Создано: 27 февраля 2011 21:17 · Личное сообщение · #17
maddmaks пишет: Я так и не понял как он работает ... Он и не сработает в бесике надо W, Reducer делает только А, и то не под все винды.
| Сообщение посчитали полезным: |
Ранг: 30.8 (посетитель), 1thx Активность: 0.01↘0 Статус: Участник
|
Создано: 28 февраля 2011 07:31 · Личное сообщение · #18
@maddmaks Если прога писана на бейсике, то перед вызовом Environ, идет загрузка ArmAccess.dll. Declare Function VerifyKey Lib "ArmAccess.DLL" (UserName$, KeyCode$) As Byte И править надо, именно ее. Поищи, примеров было полно.
| Сообщение посчитали полезным: |