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

 eXeL@B —› Протекторы —› Armadillo. Необъяснимый баг с таблицей импорта (у кого-то было подобное?).
Посл.ответ Сообщение

Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 27 января 2010 18:35 · Поправил: Kiev78
· Личное сообщение · #1

---



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 27 января 2010 18:39 · Поправил: Kiev78
· Личное сообщение · #2

---



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 27 января 2010 19:51
· Личное сообщение · #3

во-первых, не мешало бы лог ArmaFP, во-вторых, где таргет... и в-третьих, на вскидку, арма юзает LoadLibrary/GetProcAddress для вызова своих апи, при восстановлении импорта в анпуцнутом эксешнике указатели на эти апи могут быть неправильными



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 27 января 2010 20:07 · Поправил: Kiev78
· Личное сообщение · #4

---



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

Создано: 27 января 2010 20:53 · Поправил: Vovan666
· Личное сообщение · #5

Запусти Armadillo Find Protected V1.8 с галкой evar. тебе нужно "восстановить" эти Environment Variable.
запусти с такого батника
SET xky=0xF0E1D2E3
SET DCEDITION=3
SET ALTUSERNAME=Vasya
dumped_.exe
если выскочит сообщение о вирусе, значит распаковал правильно, осталось только Environment Variable восстановить.



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 27 января 2010 21:37 · Поправил: Kiev78
· Личное сообщение · #6

---



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

Создано: 27 января 2010 21:56 · Поправил: Vovan666
· Личное сообщение · #7

http://msdn.microsoft.com/en-us/library/ms682653%28VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms683188%28VS.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms686206%28VS.85%29.aspx

Армадила использует эту апи для управления защитой,триалом, лиценциями и т.д.
где-нибудь в пустом месте напиши что-то вроде
Code:
  1. push '0xF0E1D2E3'
  2. push 'xky'
  3. Call [SetEnvironmentVariable]
  4. ;и так же для остальных
  5. jmp OEP

после чего переделай оеп на этот код



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 27 января 2010 22:37 · Поправил: Kiev78
· Личное сообщение · #8

---



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

Создано: 27 января 2010 23:01
· Личное сообщение · #9

Kiev78 пишет:
Например, почему именно эти а не другие значения переменных нужны (xky=0xF0E1D2E3 и т.д.), откуда они взялись? Ты ведь не с потолка взял их?
В любом случае спасибо за помощь.

Поставь бряк на GetEnvironmentVariableA в распакованной версии, посмотри откуда из кода она вызывается, после чего поставь бряк на это же место в коде в запакованной программе ( без исправленного magic jmp) и смотри с каким параметром вызывается и что возвращает эта функция.




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

Создано: 28 января 2010 02:09
· Личное сообщение · #10

Kiev78 пишет:
GetProcAdress и LoadLibrary

ArmAccess.dll тебе в зад )

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




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

Создано: 28 января 2010 02:21
· Личное сообщение · #11

Kiev78
держи лодырь, не мучайся
multi-up.com/210233



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 28 января 2010 06:57 · Поправил: Kiev78
· Личное сообщение · #12

---



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 28 января 2010 07:17
· Личное сообщение · #13

нет, он предлагает взять и написать свою armaccess.dll и добавить к таблице импорта, если она не грузится динамически

Code:
  1. format pe gui 4.0 dll
  2. entry DllEntryPoint
  3.  
  4. include '%fasminc%\win32a.inc'
  5.  
  6. section '.data' data readable
  7.  
  8.   szKernel        db "kernel32.dll",0
  9.   szProc db "SetEnvironmentVariableA",0
  10.   
  11.   table  dd szCopies,szCopiesin,\
  12.                     szDays,szDaysin,\
  13.                     szExtra,szDaysin,\
  14.                     szKeyCr,szKeyCrin,\
  15.                     szKey,szKeyin,\
  16.                     szUser,szUserin,\
  17.                     szDaysLeft,szCopiesin,\
  18.                     szExpired,szDaysin,\
  19.                     szExpVer,szDaysin,\
  20.                     szUses,szCopiesin,\
  21.                     szClockBack,szDaysin,\
  22.                     szClockForw,szDaysin,\
  23.                     szClockWhy,szDaysin,\
  24.                     szCommandLine,szDaysin,\
  25.                     szLastRun,szDaysin,\
  26.                     szFinger,szFingerin,\
  27.                     szFinger2,szFingerin,\
  28.                     szInvKey,szDaysin,\
  29.                     szLoadWnd,szDaysin,\
  30.                     szProtFile,szDaysin,\
  31.                     szProtPath,szDaysin,\
  32.                     szVersion,szDaysin,\
  33.                     szODS,szDaysin,\
  34.                     szODSu,szCopiesin,\
  35.                     szKeyStr,szKeyin,\
  36.                     -1,-1
  37.  
  38.   szCopies        db "COPIESALLOWED",0
  39.   szCopiesin      db "999999",0
  40.   szDays db "DAYSINSTALLED",0
  41.   szDaysin        db "0",0
  42.   szExtra         db "EXTRAINFO",0
  43.   szKeyCr         db "KEYCREATED",0
  44.   szKeyCrin       db "1",0
  45.   szKey  db "USERKEY",0
  46.   szKeyin         db "666-999-666",0
  47.   szUser db "ALTUSERNAME",0
  48.   szUserin        db "Avoid /// Revenge",0
  49.   szDaysLeft      db "DAYSLEFT",0
  50.   szExpired       db "EXPIRED",0
  51.   szExpVer        db "EXPIREVER",0
  52.   szUses db "USESLEFT",0
  53.   szClockBack     db "CLOCKBACK",0
  54.   szClockForw     db "CLOCKFORWARD",0
  55.   szClockWhy      db "CLOCKWHY",0
  56.   szCommandLine db "COMMANDLINE",0
  57.   szLastRun       db "DATELASTRUN",0
  58.   szFinger        db "ENHFINGERPRINT",0
  59.   szFingerin      db "0000-0000",0
  60.   szFinger2       db "FINGERPRINT",0
  61.   szInvKey        db "INVALIDKEY",0
  62.   szLoadWnd       db "LOADINGWINDOW",0
  63.   szProtFile      db "PROTECTEDFILE",0
  64.   szProtPath      db "PROTECTEDFILEPATH",0
  65.   szVersion       db "VERSIONNUMBER",0
  66.   szODS  db "ODS",0
  67.   szODSu db "ODSUSERS",0
  68.   szKeyStr        db "KEYSTRING",0
  69.  
  70.  
  71. section '.text' code readable executable
  72.  
  73.   proc   DllEntryPoint uses ebx esi edi, hInstDLL,fdwReason,lpvReserved
  74.          cmp     [fdwReason],1 ; attach
  75.          jnz     @f
  76.          invoke  DisableThreadLibraryCalls,[hInstDLL]
  77.  
  78.          invoke  LoadLibrary,szKernel
  79.          mov     esi,eax
  80.          invoke  GetProcAddress,esi,szProc
  81.          mov     edi,eax
  82.          mov     ebx,table
  83.          
  84.   .again:         
  85.          mov     eax,[ebx]
  86.          cmp     eax,-1
  87.          jz      .out
  88.          mov     ecx,[ebx+4]
  89.          cmp     ecx,-1
  90.          jz      .out
  91.          stdcall edi,eax,ecx
  92.          add     ebx,8
  93.          jmp     .again
  94.          
  95.   .out:
  96.          invoke  FreeLibrary,esi
  97.  
  98.   @@:
  99.          xor     eax,eax
  100.          inc     eax
  101.          ret
  102.   endp
  103.  
  104.   proc   _uninstkey, lpParam1,lpParam2
  105.          xor     eax,eax
  106.          inc     eax
  107.          ret
  108.   endp
  109.  
  110.   proc   _instkey, lpParam1,lpParam2
  111.          xor     eax,eax
  112.          inc     eax
  113.          ret
  114.   endp
  115.  
  116.   proc   _updenv
  117.          xor     eax,eax
  118.          inc     eax
  119.          ret
  120.   endp
  121.  
  122. section '.idata' import data readable writeable
  123.  
  124.   library         kernel32,'kernel32.dll',\
  125.                  user32,'user32.dll',\
  126.                  gdi32,'gdi32.dll',\
  127.                  advapi32,'advapi32.dll'
  128.  
  129.   include         '%fasminc%\api\kernel32.inc'
  130.   include         '%fasminc%\api\user32.inc'
  131.   include         '%fasminc%\api\gdi32.inc'
  132.   include         '%fasminc%\api\advapi32.inc'
  133.  
  134. section '.edata' export data readable
  135.  
  136.   export 'ArmAccess.DLL',\
  137.           _uninstkey,'UninstallKey',\
  138.           _instkey,'InstallKey',\
  139.           _updenv,'UpdateEnvironment'
  140.  
  141. section '.reloc' fixups data discardable
  142.  
  143. ; eof




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

Создано: 28 января 2010 07:45
· Личное сообщение · #14

@Kiev78
Думаю, что туторов ты не найдеш - это всеравно что искать тутор, как сложить два плюс два.
Тебе всегото надо две утилиты и нажать две кнопки.
dilloDIE 1.6
Armadillo Reducer 1.7.1 RC2




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

Создано: 28 января 2010 14:38 · Поправил: ClockMan
· Личное сообщение · #15

Эти значения должны быть(первые два самые главные)

push "0xF0E1D2E3"
push "xky"
call SetEnvironmentVariableA

push "3"
push "DCEDITION"
call SetEnvironmentVariableA

push "DEFAULT"
push "ALTUSERNAME"
call SetEnvironmentVariableA


Программка непростая оказалоась
/*5996B5*/ CALL 005947F0
/*5996BA*/ ADD ESP,8
/*5996BD*/ CMP DWORD PTR [EBP-3C],F23B28C1(црк проверка)
/*5996C4*/ JE SHORT 0059970B

/*402C82*/ CALL 005999AC
/*402C87*/ POP ECX
/*402C88*/ TEST AL,AL
/*402C8A*/ JNZ 00402D1A
там ещё црк замудрённая надо разбирать сидеть мне лень...

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





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

Создано: 28 января 2010 16:59 · Поправил: ClockMan
· Личное сообщение · #16

Недала меня эта фигня отдахнуть спокойно
/*50B359*/ ADD ESP,10============>поставить бряк(esp+40)адрес перемен
/*50B35C*/ LEA EAX,[EBP-10]
/*50B35F*/ PUSH EAX
/*50B360*/ PUSH 0
/*50B362*/ PUSH 0
/*50B364*/ PUSH 0069E960
в адрес переменной вписать
6617744B650A23787658745F44303078

прога по црк раскриптовывает сво ресурсы
Вот расспакованный с триалом multi-up.com/210559

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




Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 28 января 2010 17:55 · Поправил: Kiev78
· Личное сообщение · #17

---



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

Создано: 28 января 2010 22:38 · Поправил: huckfuck
· Личное сообщение · #18

Kiev78 пишет:
Я так думаю алго генерации ключей там не простой (закейгенить вряд ли удастся), интересно - он он там самопальный или что-нибудь стандартное?

Стандартный, от армудилы



Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 29 января 2010 07:27 · Поправил: Kiev78
· Личное сообщение · #19

---




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

Создано: 29 января 2010 10:20 · Поправил: ClockMan
· Личное сообщение · #20

Kiev78 пишет:
Но самое интересное, что когда я ставлю бряк (хардварный!) на доступ (access) на восстановленную АПИ (думая, что происходит проверка участка памяти на изменение, и надеясь найти код, который проверяет таблицу импорта), то процесс завершается, без срабатывания этого бряка


Всё рaбатает просто если остановится то на начале самой айпи,поставь в настройках poison(a)
IsDebuggerPresent
OutputDebugStringA

в фантике Custom handle exceptions и всё остальное всё отключенно и всё работает

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




Ранг: 67.4 (постоянный), 6thx
Активность: 0.050
Статус: Участник

Создано: 29 января 2010 17:52 · Поправил: Kiev78
· Личное сообщение · #21

---




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

Создано: 30 января 2010 03:52
· Личное сообщение · #22

Kiev78
Ставь себе виртуалку и не парь себе мозги...

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




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 30 января 2010 10:15
· Личное сообщение · #23

... и нам тоже


 eXeL@B —› Протекторы —› Armadillo. Необъяснимый баг с таблицей импорта (у кого-то было подобное?).
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати