Сейчас на форуме: kris_sexy, Wenzel, r0lka (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› Опять Armadilla
Посл.ответ Сообщение

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

Создано: 03 марта 2006 12:16
· Личное сообщение · #1

Armadilla 4.x с CopyMem II + DebugBlocker + Анти БП + Изварт с импортом

Распаковал программу получил хороший чистый код... все красиво и замечательно едивенно не смог никак
востановить таблицу импорта... нашел её в нечитабельном виде... а дальше никак... пробывал по туториалам.... находил MagicJump а дальше программа падала... хоть застрелись.... да и ещё одна странность...

Вот кусок из распакованой программы...


.text:00401069 loc_401069:
.text:00401069 cmp [ebp+argc], 4
.text:0040106D jnz loc_401155
.text:00401073 mov edi, [ebp+argv]
.text:00401076 push offset aLicensekey ; "-licensekey"
.text:0040107B mov eax, [edi+4]
.text:0040107E push eax
.text:0040107F call _istrcmp_?
.text:00401084 add esp, 8
.text:00401087 test eax, eax
.text:00401089 jnz loc_401155
.text:0040108F push offset aArmaccess_dll ; "ArmAccess.DLL"
.text:00401094 mov ebx, 1
.text:00401099 call dword ptr ds:0B90E60h
.text:0040109F mov esi, eax
.text:004010A1 test esi, esi
.text:004010A3 jnz short loc_4010C1
.text:004010A5 push 10h
.text:004010A7 push offset aInternalError ; "Internal Error"
.text:004010AC push offset aCanTLoadArmacc ; "Can't load ArmAccess.DLL"
.text:004010B1 push eax
.text:004010B2 call dword ptr ds:0B90E5Ch
.text:004010B8 pop edi
.text:004010B9 mov eax, ebx
.text:004010BB pop esi
.text:004010BC pop ebx
.text:004010BD mov esp, ebp
.text:004010BF pop ebp
.text:004010C0 retn
.text:004010C1 ; ---------------------------------------------------------------------- -----
.text:004010C1
.text:004010C1 loc_4010C1:
.text:004010C1 push offset aInstallkey ; "InstallKey"
.text:004010C6 push esi
.text:004010C7 call dword ptr ds:0B90D80h
.text:004010CD test eax, eax
.text:004010CF jnz short loc_4010F4
.text:004010D1 push 10h
.text:004010D3 push offset aInternalError ; "Internal Error"
.text:004010D8 push offset aCanTFindInstal ; "Can't find InstallKey entry"
.text:004010DD push eax
.text:004010DE call dword ptr ds:0B90E5Ch
.text:004010E4 push esi
.text:004010E5 call dword ptr ds:0B90ED8h
.text:004010EB pop edi
.text:004010EC mov eax, ebx
.text:004010EE pop esi
.text:004010EF pop ebx
.text:004010F0 mov esp, ebp
.text:004010F2 pop ebp
.text:004010F3 retn
.text:004010F4 ; ---------------------------------------------------------------------- -----
.text:004010F4
.text:004010F4 loc_4010F4:
.text:004010F4 mov ecx, [edi+0Ch]
.text:004010F7 mov edx, [edi+8]
.text:004010FA push ecx
.text:004010FB push edx
.text:004010FC call eax
.text:004010FE test al, al
.text:00401100 jnz short loc_401143
.text:00401102 call dword ptr ds:0B90D24h
.text:00401108 push eax
.text:00401109 lea eax, [ebp+var_290]
.text:0040110F push offset aInvalidKeyEnte ; "Invalid key entered (error %d)"
.text:00401114 push eax ; char *
.text:00401115 call _sprintf
.text:0040111A add esp, 0Ch
.text:0040111D lea ecx, [ebp+var_290]
.text:00401123 push 10h
.text:00401125 push offset aError ; "Error"
.text:0040112A push ecx
.text:0040112B push 0
.text:0040112D call dword ptr ds:0B90E5Ch
.text:00401133 push esi
.text:00401134 call dword ptr ds:0B90ED8h
.text:0040113A pop edi
.text:0040113B mov eax, ebx
.text:0040113D pop esi
.text:0040113E pop ebx
.text:0040113F mov esp, ebp
.text:00401141 pop ebp
.text:00401142 retn



Сдесь есть довольнатаки забавные моменты например

.text:0040108F push offset aArmaccess_dll ; "ArmAccess.DLL"
.text:00401094 mov ebx, 1
.text:00401099 call dword ptr ds:0B90E60h

Очеьн похоже на вызов LoadLibrary (ArmAccess.DLL её в папку прогарммы нет .. а даже если есть то прогармма именно её не грузит) и оно так и есть скорее всего ... распаковал этот кусок далее пропатчил 004010A3 на вечный цикл (EB FE) далее пускаю программу она там зациклилась делаю DebugActiveProcessStop и перехожу и атачусь в дочерний процесс.... смотрю содержимое регистров esi и eax соотсвенно да значения равны но равны они ImageBase! +) то бишь 0x0400000 странно.... как то... может это и не LoadLibrary а GetModuleHandle ... ну ладно думаю... зациклю дальше вот тут 004010CF прям после вызова тоже некой функции похожей на GetProcessAddress ... думаю ну ладно может хитрость какая то счас получу адрес функции который ниже вызываеться и все.. тут... но не тут то было... адрес фиг знает какой ведет поомему в кривой импорт.... странно как то .. кто нибудь с этим сталкивался? прототип этой функции соотсвенно Имя пользователя и Ключ ... как параметры... но вот адрес функции чего то не пойму как найти .. может он вообще где то в программе ибо где ему ещё быть.... и Арма таким вот хитрым макаром шифруеться как то....




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

Создано: 03 марта 2006 12:58
· Личное сообщение · #2

Ты импорт не доконца востановил.



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 03 марта 2006 13:17 · Поправил: Smon
· Личное сообщение · #3

Fallout пишет:
находил MagicJump а дальше программа падала

Скорее всего его ты нашёл неправильно, а если и правильно, то видимо забыл возвратить всё на место по окончании записи импорта, или пропатчить процедуру проверки.

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




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

Создано: 03 марта 2006 13:36
· Личное сообщение · #4

2NIKOLA
Да дело то не в импорте даже а в какой то магии почему функция которая должна загрухить библиотеку... возвращает ImageBase вместо загружаной библиотеки... ведь библиотеки даже нет вообще в системе... и если кинуть самописную то почему то опять грузит что то но только не её.... ведь я патчил же процесс после вызова этой АПИ.... и впринцыпи все рвоно востановил я импорт или нет ... Там уже армадила... должна все сделать... ибо я отлаживаемый отцовский процесс отпускаю на вольное выполнение после патчинга.... потом останавливаю.... детачу дочерний процесс .. атачусь к нему и смотрю регистры.... странно вообще....

п.с: испорт я и не выстанавливал я писал уже об этом ибо не получилось...

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




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

Создано: 03 марта 2006 13:45
· Личное сообщение · #5

Я не понял я в чём проблема.
ArmAccess.DLL находится в памяти, на диске ты её не найдёш.
Кгда импорт востановиш, то здесь будет:
.text:00401099 call dword ptr ds:0B90E60h - LoadLibrary

а здесь:
.text:004010C7 call dword ptr ds:0B90D80h - GetProcAddress

а то , что сейчас есть, это переходники.



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

Создано: 03 марта 2006 14:20 · Поправил: Fallout
· Личное сообщение · #6

Да я так и понял.... что это эти функции.... хм... получаеться где то в этом же процессе она чтоль поэтому и возвращает ImageBase данного ЕХЕ (0x0400000) странно что LoadLibrary по имени библиотеки может найти её в памяти.... хм.. хотя теоритически если библиотека уже загружена в память то она может вернуть просто её адрес .... а не загружать вновь... но всеровно адрес странноват... .... хм... а GetProcAddress дает адрес не функции все ровно =(... а куда то в переходник.... примерно такогоже вида 0B90XXXX .... забавно... в котором кстати мусарок какой то..... теоритически можно найти эту функцию впатчив сюда:


.text:004010FC call eax


что нибуть типа

push 0xBAADFOOD
push [eax]
push [eax+4]
push [eax+8]
push 0xBAADFOOD

и зациклить код потом пустить его его .... пусть выпонлиться как надо .... и он будет зациклен... после чего.... заатачиться к нашему пропатченому прцоессу поглядеть стек... и найти там байты функции.... если там переходник... то тогда поглядеть куда... если сами байты функции то попробывать в распакованом коде её найти.... просто ну дейсвительно у меня чего то с востановлением импорта гемор какой то...



Ранг: 500.5 (!), 8thx
Активность: 0.230
Статус: Участник

Создано: 03 марта 2006 14:36 · Поправил: Smon
· Личное сообщение · #7

Fallout
Чёт ты усложнил всё как то слишком. Всё гораздо проще - после бряка на оеп смотрим на переходники в секции кода, запоминаем адрес первого (не адрес самого JMP DWORD, а адрес куда он показывает) , ставим бряк на запись на 4 байта, которые до него, перезапускаем, брякаемся и глядим - как работает цикл (и ищем в нем магпрыга) - т.е. если нашел и поправил, то переходник в иат не запишется).

-----
"Пусть видят, что мы не шутим. Стволы для понта, ножи для дела" Lock, Stock & Two Smoking Barrels




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

Создано: 03 марта 2006 14:52 · Поправил: Fallout
· Личное сообщение · #8

Smon
Хорошо покавыряю.... счас
кстати функцию нашел вроде +) она оказалось по адресу

00AFED8A =) забавно в дамп она не попала.. это точно так что в дампе импорт востнавливать смысла.. нет... хотя есть смысл вообще его востановить ради того хотя бы что бы... он был нормальный при отладке дочернего процесса а конкретно этой функции



00AFED8A 6A 00 PUSH 0
00AFED8C 6A 01 PUSH 1
00AFED8E FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00AFED92 FF7424 10 PUSH DWORD PTR SS:[ESP+10]
00AFED96 E8 17FEFFFF CALL 00AFEBB2
00AFED9B 83C4 10 ADD ESP,10
00AFED9E C2 0800 RETN 8


странная функция туда идут да два значение имя юзера и номерок.... только вот сама она странная какая то +) ну ладно буду капаться....

Кстати погляджел на адрес.. 00AD0000 в мемори мап куда как раз эта функция попадает ... и там оказалась вроде как эта библиотека



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

Создано: 03 марта 2006 16:19
· Личное сообщение · #9

Использую АрмДетатчер.... после чего атачусь к продетаченому процессору правильно нахожу магик джамп.. +) хм а вот дальше не пойму что делать... он находиться в выделеной памяти.... так что как я понял.... надо действовать именно сейчас так сказать....



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

Создано: 03 марта 2006 17:46
· Личное сообщение · #10

Востановил ИАТ но все оказалось хитрее +)) будем капать эту ДЛЛ... которая дейсвительно в адресном прсотранстве процесса... сидит ...




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

Создано: 03 марта 2006 19:18
· Личное сообщение · #11

Fallout пишет:
будем капать эту ДЛЛ


Если ты распаковал и востановил импорт правильно, он тибе не понадобится.




Ранг: 299.6 (наставник)
Активность: 0.30
Статус: Участник
Armadillo Killer

Создано: 03 марта 2006 20:06
· Личное сообщение · #12

NIKOLA При этом надо еще удалить секции Армы




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

Создано: 03 марта 2006 21:13
· Личное сообщение · #13

Z0oMiK пишет:
При этом надо еще удалить секции Армы


Не обязательно.




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 03 марта 2006 22:40
· Личное сообщение · #14

Fallout пишет:
....

какая-то у тебя речь несвязная =)) поменьше ставь "...", а то вообще смысл вопроса неясен.



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

Создано: 04 марта 2006 17:17
· Личное сообщение · #15

NIKOLA
Я не люблю крЯки... мне больше нравиться делать кийгены _)

Mario555
юю Да это привычка уже стала.. такая поэтому мало кто понимает что пишу... но не всегда

А так думаю... нормально отодрать эту ДЛЛ и написать к ней небольшой загрузчик и дальше... смотреть как там все генериться ибо сам ехе хоть и распакованый не нужен




Ранг: 303.7 (мудрец), 4thx
Активность: 0.190
Статус: Участник
tPORt Manager

Создано: 04 марта 2006 17:40
· Личное сообщение · #16

Fallout пишет:
нормально отодрать эту ДЛЛ и написать к ней небольшой загрузчик и дальше... смотреть как там все генериться ибо сам ехе хоть и распакованый не нужен

А я делал так: чтоб не патчить ехе, чтоб он не грузил armaccess.dll, я взял асм и написал "эмуль":
.386
.model flat,stdcall

option casemap:none

include D:\masm32\INCLUDE\WINDOWS.INC

include D:\masm32\include\imagehlp.inc
include D:\masm32\include\comdlg32.inc
include D:\masm32\include\user32.inc
include D:\masm32\include\kernel32.inc
include D:\masm32\include\masm32.inc

includelib D:\masm32\lib\imagehlp.lib
includelib D:\masm32\lib\comdlg32.lib
includelib D:\masm32\lib\user32.lib
includelib D:\masm32\lib\kernel32.lib
includelib D:\masm32\lib\masm32.lib

.data

.code
DllEntry proc hInstDLL:HINSTANCE, reasonWORD, reserved1WORD
mov eax,TRUE
ret
DllEntry Endp


InstallKey proc near
mov eax,1
ret
InstallKey endp
UpdateEnvironment proc near
mov eax,1
ret
UpdateEnvironment endp
CheckCode proc near
mov eax,1
ret
CheckCode endp


End DllEntry

Ну и всё




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 04 марта 2006 19:02
· Личное сообщение · #17

Fallout пишет:
Я не люблю крЯки... мне больше нравиться делать кийгены _)

и какой ты левел сертификата армы собрался кигенить ? уж не 10-й ли ?

Fallout пишет:
А так думаю... нормально отодрать эту ДЛЛ и написать к ней небольшой загрузчик и дальше

сама эта длл лежит в папке с армой ;)



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

Создано: 06 марта 2006 13:27
· Личное сообщение · #18

Mario555
Угу ты прав... я InstallKey отлаживал функцию... написать кийген +) чего то я для себя возможным не вижу слишком мнооооого кода и все запутано до черту....


Bit-hack
А толку то от этой длл ... там эта функция не типа мол если функция вернула 1 то все мы зареганые пользователи +))) Там если решил зарегистрироваться загружаетсья библиотека, вызываетсья эта функция и на выход +) Так что придеться все таки .... ЕХЕшник патчить ... чтоб не триал и прочие ограничения убрать.. а жаль =(


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


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