ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Вопрос по шифрованию таблицы импорта
  #1  
Старый 13.07.2009, 17:26
Аватар для hiphop191817
hiphop191817
Новичок
Регистрация: 25.04.2009
Сообщений: 17
Провел на форуме:
94720

Репутация: 1
По умолчанию Вопрос по шифрованию таблицы импорта

Пишу свой криптор.В ходе работы возник вопрос-почему нельзя шифровать таблицу импорта так же как например таблицу данных или таблицу кода?

Объясните кто-нибудь или киньте ссылки-как решить данную проблему.
 
Ответить с цитированием

  #2  
Старый 13.07.2009, 18:50
Аватар для spider-intruder
spider-intruder
Постоянный
Регистрация: 10.12.2005
Сообщений: 939
Провел на форуме:
3886281

Репутация: 929


Отправить сообщение для spider-intruder с помощью ICQ
По умолчанию

А кто тебе сказал что нельзя? 0_o
 
Ответить с цитированием

  #3  
Старый 13.07.2009, 19:01
Аватар для hiphop191817
hiphop191817
Новичок
Регистрация: 25.04.2009
Сообщений: 17
Провел на форуме:
94720

Репутация: 1
По умолчанию

При запуске программы загрузчик ОС получает адреса используемых в программе функций и записывает их в массив адресов имен функций, на который ссылаются поля FirstThunk, и в котором до этого были RVA, ссылающиеся на имена соответствующих функций. После того, как этот массив заполнен адресами функций, он называется Таблицей Адресов Импорта (Import Address Table, сокращенно IAT).

После того, как IAT заполнена адресами нужных функций, программа может начать работу.








Исхожу из этого отрывка об описании таблицы импорта.Если таблица импорта будет зашифрована то тогда IAT не сможет заполниться реальными адресами функций, так как в "таблице просмотра импорта" находятся зашифрованные данные.Соответственно программа не загрузится.
 
Ответить с цитированием

  #4  
Старый 13.07.2009, 19:05
Аватар для Ra$cal
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

а что мешает криптору сделать свою таблицу импорта, зашифровать ИАТ программы и потом восстановить =)
 
Ответить с цитированием

  #5  
Старый 13.07.2009, 19:08
Аватар для x0man
x0man
Познающий
Регистрация: 24.02.2006
Сообщений: 34
Провел на форуме:
136883

Репутация: 50
По умолчанию

 
Ответить с цитированием

  #6  
Старый 13.07.2009, 19:10
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

вообще IT шифровать нужно обязательно.
А потом ты просто пишеш код который сам загрузит все данные.
т.е. ручная обработка импорта и потом LoadLibrary и GetProcAddress
КОгдато писал для криптера, то вышло гдето строк 100 на асме. мож меньше
 
Ответить с цитированием

  #7  
Старый 13.07.2009, 19:21
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

если быть более подробным то делал примерно так (кусок кода из криптера моего)
Надеюсь алгоритм будет понятен. Если знаеш ASM
/me ехидно улыбнулся )

Код:
   ESI = PE
.............
 pushad
 mov edx,eax
 cmp [esi+80h],0
 je @_exit
 add eax,[esi+80h] //; IT
 mov esi,eax
@_next1:
 cmp dword [esi+10h],0 //; если нет больше загружаемых библиотек
 jz @_exit
 push edx
 push ecx
 add edx,[esi+0Ch]
 push edx
 call [my_LoadLibrary] //; загрузить библиотеку
 pop ecx
 pop edx
 mov ebx,eax  //; сохранить в ebx module handle библиотеки
 mov edi,[esi+10h]  //; в EDI будет адрес на Addres_Table_RVA
 add edi,edx
 @_nextProc:
  cmp dword [edi],0 //; проверить текущий указатель на импортируемую функцию.
  jz @_nextDLL //; если больше нет импортируемых функций для текущей библиотеки
  push edx
  push ecx //; если есть IAT
  add edx,[edi]
  bt edx,31 //; проверка импорта по имени или ординалу
  jnc @_next3

  and edx,$0000ffff

  push edx //; если ординал
  jmp @_next4
 @_next3:
  inc edx  //; если имя
  inc edx
  push edx //; поместить в стек адрес имени функции
 @_next4:

  push ebx //; module handle
  call [my_GetProcAddress] //; получить адрес функции
  pop ecx
  pop edx
  mov [edi],eax //; сохранить адрес
 @_next2:
  inc ecx
  add edi,4 //; перейти на слудующий элемент.
  jmp @_nextProc
@_nextDLL: //; больше нет элементов.
 add esi,14h //; сместить указатель на следующую библиотеку
 jmp @_next1
@_exit:
 popad
 
Ответить с цитированием

  #8  
Старый 13.07.2009, 19:26
Аватар для hiphop191817
hiphop191817
Новичок
Регистрация: 25.04.2009
Сообщений: 17
Провел на форуме:
94720

Репутация: 1
По умолчанию

slesh, спасибо за пояснение.

Это код на MASM или на чём? Просто немного непонятно что делают эти значики собаки в начале имён меток (@_nextProc: @_next4 + что значит знак доллара в инструкции and edx,$0000ffff?
 
Ответить с цитированием

  #9  
Старый 13.07.2009, 19:38
Аватар для slesh
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Это ассемблерная вставка из дельфяной проги )
А там $ - это типа HEX значение т.е. аналог буквы h в конце
@ - там все метки начинаются с сабаки.
 
Ответить с цитированием

  #10  
Старый 13.07.2009, 19:39
Аватар для x0man
x0man
Познающий
Регистрация: 24.02.2006
Сообщений: 34
Провел на форуме:
136883

Репутация: 50
По умолчанию

Если смотрешь в код ты асма
И увидел там знак бакса
Крикни в воздух с другом разом
-Это млять же сцуко "ФАСыМ"!!!!!
-----
(C) х0ман) мухаха)

P.S.
(для тех кто не может понять, что это перед ним fasm или masm) ^^.

про делфу потом напишу
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВКонтакте "счастливый фермер" ЖенькО Социальные сети 309 22.07.2009 11:35
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
Что такое rainbow tables и их применение MegaBits Чужие Статьи 2 16.11.2006 19:43
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Краткое пособие по языку Sql •••™NO FEAR™••• Чужие Статьи 1 28.02.2006 19:52



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ