Сейчас на форуме: hgdagon, asfa, bartolomeo (+5 невидимых)

 eXeL@B —› Программирование —› Таблица импорта в PE
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 21 сентября 2006 08:27 · Поправил: sniperZ
· Личное сообщение · #1

Есть
IMAGE_IMPORT_DESCRIPTOR STRUCT
union
Characteristics dd ?
OriginalFirstThunk dd ?
ends
TimeDateStamp dd ?
ForwarderChain dd ?
Name1 dd ?
FirstThunk dd ?
IMAGE_IMPORT_DESCRIPTOR ENDS

В ней есть Name1 - имя DLL.

Написано:
Name1 содержит имя импортируемой функции в формате ASCIIZ. Хотя этот параметр определен как байт, на самом деле он переменного размера. Так было сделано лишь потому, что нельзя представить в структуре поле переменного размера. Структура была определена для того, чтобы вы могли обращаться к данным через описательные имена.


И ещё:
Name1 отличается от других параметров тем, что оно содержит RVA имени DLL.

Ето что, надо перейти по RVA имени и прочеть её?
И какой длины имя читать(чёчо не въеду)?

...и ещё:
Вместо этого, IMAGE_THUNK_DATA этой функции будет содержать ординал функции в нижнем слове и самый значимый бит (MSB) IMAGE_THUNK_DATA'ы будет установлен в 1.

Это как? Как понять значимый бит?



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 21 сентября 2006 08:33
· Личное сообщение · #2

для начала Iczelion'а почитай чтоли
www.wasm.ru/publist.php?list=1



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 21 сентября 2006 08:34
· Личное сообщение · #3

sniperZ пишет:
то что, надо перейти по RVA имени и прочеть её?
И какой длины имя читать(чёчо не въеду)?

Написано же ASCIIZ(ero) тобой же, а че такое RVA ? находи от этого в памяти (VA = АДрес загруки + RVA) или файловое смещение!

-----
My love is very cool girl.





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 21 сентября 2006 08:35
· Личное сообщение · #4

А вообще попробуй практикой. Структура запутанная, ибо там 2 или 3 разных и друг на друга ссылаются. Я долго промучился (в моральном плане). Но практикой всяко проще

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 21 сентября 2006 08:38
· Личное сообщение · #5

Asterix пишет:
для начала Iczelion'а почитай чтоли
www.wasm.ru/publist.php?list=1


Не советую! Лучше:
1. Мета Питрека
2. Упаковщики от Volodya

и качнуть доки по этому формату с васма!

-----
My love is very cool girl.




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 21 сентября 2006 09:36
· Личное сообщение · #6

Как обычно парни не поняли вопроса =)
Для загрузчика важны эти два поля:
Name1 dd ?
FirstThunk dd ?
А на остальные первые четыре можно вообще забить!
sniperZ
Вот аттач, там ответы, на все задаваемые тобой вопросы и описание примитивного внедрения кода в чужой процесс! ;)


8340_21.09.2006_CRACKLAB.rU.tgz - 010010.zip

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

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

Demon666 пишет:
А на остальные первые четыре можно вообще забить!

Ты не прав, например OriginalFirstThunk часто ипользуется загрузчиком при определенных услових
чти Криса и theCollision пишет:
Упаковщики от Volodya


-----
DREAMS CALL US




Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 21 сентября 2006 10:40
· Личное сообщение · #8

Asterix пишет:
для начала Iczelion'а почитай чтоли


Вобще-то цитаты вопроса из тутора Iczelion'а!

Asterix пишет:
че такое RVA


"че такое RVA" я знаю.
theCollision пишет:
Написано же ASCIIZ(ero)


А что ASCIIZ имеет длину?

Я имею ввиду, если перейти по RVA Name1(так ведь), то какой длины читать строку.

И что такое MSB?



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 21 сентября 2006 10:41
· Личное сообщение · #9

=TS= пишет:
Ты не прав

А ImportREC по-другому делает? ;)

=TS= пишет:
OriginalFirstThunk часто ипользуется загрузчиком при определенных услових

Какие такие условия?

=TS= пишет:
чти Криса

Криса не чту, хватила одной статьи, чтобы понять, что там половина мусора так сказать больше флуда, а по теме два слова и из них половина под вопросом.
Какая имелась в виду статья в данном случае!? (У него их…)

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 162.2 (ветеран)
Активность: 0.090
Статус: Участник

Создано: 21 сентября 2006 10:53
· Личное сообщение · #10

sniperZ пишет:
А что ASCIIZ имеет длину

нет, но она 0 заканчивается


theCollision пишет:

Не советую! Лучше:
1. Мета Питрека
2. Упаковщики от Volodya


Имхо, упаковщики вот так сразу читать не стоит. Лучне Питрека и попрактиковаться.



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 21 сентября 2006 11:15
· Личное сообщение · #11

Короче поставим вопрос так:
есть IMAGE_IMPORT_DESCRIPTOR.Name

Как мне вывести имя в Memo?(по другому вы не понимаете)



Ранг: 260.2 (наставник)
Активность: 0.190
Статус: Участник

Создано: 21 сентября 2006 11:33
· Личное сообщение · #12

Понял...
Нуно сделать РВАТуОФФсет(IMAGE_IMPORT_DESCRIPTOR.Name) и перейти по этому значению.
Но как реализовать чтение имени, ведь они разной длины(что, читать по байту пока <>0)?



Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

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

sniperZ пишет:
Но как реализовать чтение имени, ведь они разной длины

lstrcpy тебе поможет ;)
А вообще аттач смотрел, да до конца?

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 21 сентября 2006 12:14 · Поправил: Rascal
· Личное сообщение · #14

Хватит юзать делфи. Если такого не знать, фу, стыдно. lstrcpy (dest, src)
Demon666 пишет:
Какие такие условия?

Что компилятор сделает с тем и будешь разбираться. Читай Питрека, имена могут быть в 2 разных массивах. Я сам попалился, когда юзал только Name, как оказалось чаще имена встречаются в... мля, забыл уже. сорец мож даже потерял. жаль будет.
я кста успешно сделал добавление новой библы и функции в импорт проги без пересройки импорта Дописывал в импорт. Но не довёл до ума Мелкие баги

[ADDED]
Упс, не заметил поста демона про lstrcpy

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 21 сентября 2006 12:18
· Личное сообщение · #15

sniperZ пишет:
IMAGE_IMPORT_DESCRIPTOR.Name

Ну бля, я же писал тебе , что ты сам написал asc2zero а че это в дельфи если не Pchar ? ( это ж бля элементароно! ) Я этот тип узнал, за 20 минут, а всего то надо было набрать ключевой запрос в яндексе и он привел меня к Королевству Дельфи. ВСЕ! Далее любимое MemoNah.lines.Add(Хули надо);

-----
My love is very cool girl.




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

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

В каждой стать есть недочеты прошлых лет, которые не дают спать спокойно кодерам!
Может, хватит спотыкаться об баги авторов!?

Rascal пишет:
Что компилятор сделает с тем и будешь разбираться. Читай Питрека, имена могут быть в 2 разных массивах.

Я не о компиляторах, а о таблице импорта и offset`ах (что в RVA лежат).

Demon666 пишет:
А ImportREC по-другому делает? ;)

Посмотри привинченную секцию и там будет видно, о чем я!?
Как, по-твоему, передаются распакованные проги и потом запускаются на других компах?

Rascal пишет:
я кста успешно сделал добавление новой библы и функции в импорт проги без пересройки импорта Дописывал в импорт.

Если на TASM, MASM, FASM дай глянуть? ;)

P. S.
И желательно ссылки в студию полезнее тема для новичков будет!

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 251.8 (наставник), 17thx
Активность: 0.120
Статус: Участник
Seeker

Создано: 21 сентября 2006 14:00
· Личное сообщение · #17

Demon666 пишет:
Какая имелась в виду статья в данном случае!? (У него их…)


ПУТЬ ВОИНА – ВНЕДРЕНИЕ В PE/COFF-ФАЙЛЫ

Demon666 пишет:
Какие такие условия?


там и почитаешь. А вообще советую попортить структуры и посмотреть как на это среагирует загрузчик...

-----
DREAMS CALL US




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 21 сентября 2006 14:56
· Личное сообщение · #18

=TS=
Наверное, я просто думал вот об этом:
IMAGE_IMPORT_DESCRIPTOR STRUCT
union
Characteristics dd 0
OriginalFirstThunk dd 0
ends
TimeDateStamp dd 0
ForwarderChain dd 0
Name1 dd ?
FirstThunk dd ?
IMAGE_IMPORT_DESCRIPTOR ENDS
Для меня проще глянуть на сам код загрузчика под отладчиком, чем читать такое =)))

ИМХО - Уж тогда лучше уже он описал внутренности загрузчика, чем скудный пересказ официального описания PE-формата!

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 21 сентября 2006 20:54 · Поправил: theCollision
· Личное сообщение · #19

sniperZ
[url=http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9 fde-d599bac8184a/pecoff_v8.doc
]http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde- d 599bac8184a/pecoff_v8.doc
[/url]

Самая последняя!!!

Забыл сказать, что это:
1. www.microsoft.com/downloads/details.aspx?familyid=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&displaylang=en

Просто необходимо ставить, ибо много нужного и полезного там есть!

-----
My love is very cool girl.





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 22 сентября 2006 00:00
· Личное сообщение · #20

Demon666 пишет:
Если на TASM, MASM, FASM дай глянуть? ;)

C++ с асмовыми вставками.

Вот, смотрите, тренируйтесь. Тока не пинайте сильно, писал давно и быстро. Бинарник вложен, чтобы им воспользоваться нужно его кинуть в папку и туда скопировать calc.exe.

ae51_22.09.2006_CRACKLAB.rU.tgz - ImportAdd.rar

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 22 сентября 2006 11:09
· Личное сообщение · #21

Rascal
Запускаю *.exe он мне windows`кий наг, гружу в олю, запускаю она мне исключение. Смотрим и видим по адресу
004018C0 66:8B43 06 MOV AX,WORD PTR DS:[EBX+6]
Где EBX == 0
выше
004018B7 894D FC MOV DWORD PTR SS:[EBP-4],ECX здесь, зачем ложится в стек?
004018BA 8B7D FC MOV EDI,DWORD PTR SS:[EBP-4] здесь снимается значение из стека
004018BD 8B5F 30 MOV EBX,DWORD PTR DS:[EDI+30]
не проще ли MOV edi,ecx
или
push ecx
pop edi
Эта процедура находится в инициализации диалога и секция с данными, где условно эта процедура пытается какую-то структуру организовать (это я так называю данные разных типов) пустая, вообще для чего эта процедура нужна? (вернее их в том месте каскад (3))
004012E4 mov ecx, offset 4083A0h
004012E9 call 4017D0h ;(1)
004012EE mov ecx, offset 4083A0h
004012F3 call 4018B0h ;(2)
004012F8 mov ecx, offset 4083A0h
004012FD call 401A70h ;(3)
ЗЫ: дальше не смотрел, будет время на выходных, посмотрю подробнее.

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 22 сентября 2006 13:41
· Личное сообщение · #22

Ну ёпт:
Rascal пишет:
Бинарник вложен, чтобы им воспользоваться нужно его кинуть в папку и туда скопировать calc.exe.

Это означает что или ты не положил файл с именем calc.exe в папку с программой, или он не открывается(calc.exe), или что-то ещё От ошибок не защищался, так как этот проект задумывался лишь как тех демо для проработки идеи.

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 22 сентября 2006 13:56 · Поправил: Rascal
· Личное сообщение · #23

004012E2 |. 6A 00 PUSH 0 ; /Arg1 = 00000000
004012E4 |. B9 A0834000 MOV ECX,OFFSET ImportAd.IE ; |
004012E9 |. E8 E2040000 CALL ImportAd.CImportEditor::OpenPEFile ; \CImportEditor::OpenPEFile
004012EE |. B9 A0834000 MOV ECX,OFFSET ImportAd.IE
004012F3 |. E8 B8050000 CALL ImportAd.CImportEditor::FindImportSec>
004012F8 |. B9 A0834000 MOV ECX,OFFSET ImportAd.IE
004012FD |. E8 6E070000 CALL ImportAd.CImportEditor::FillLibDesc


Это на счёт последних колов.

004018B7 . 894D FC MOV DWORD PTR SS:[EBP-4],ECX
004018BA . 8B7D FC MOV EDI,DWORD PTR SS:[EBP-4]

importeditor.cpp:275. mov edi, this;

Если ты не обратил внимания там много операций через регистр EDI идёт. Это как раз инлайн асм и ООП. То есть EDI - просто указатель на объект. Иначе инлайн асм не заработает.
Итог - Коль не знаешь, не говори. Это особенности использования инлайн асма. ПОпробуй использовать, отладить, тогда всё как на ладони будет.
Оптимизатор не использовал, иначе бы вообще них не понял. А если б ещё и в 2005 компилил и оптимизил, мосх бы сломал ;) Я так чуть не тронулся когда большую хук библу отлаживал, пока не допёрло, что студия за меня решила подумать.
ЗЫЖ не надо учить меня оптимизации. ей здесь не место. Здесь должна быть лёгкость модификации и понимаемость. и асм-то юзать не надо было, ну да проста ради любопытства сделал на нём.

И последнее:
вот где имена могут хранится:
cmp eax, [edi]this.Import_End; // Где хранятся имена функций. Если u1.AddressOfData указывает за пределы импорта,
jb FIRSTTHUNK;
mov ebx, [esi]ThisImpDesc.Characteristics;// Значит имена лежат в IMAGE_IMPORT_DESCRIPTOR.u1.Characteristics
// Массив имён функций находится через IMAGE_IMPORT_DESCRIPTOR.u1.AddressOfData
FIRSTTHUNK:
add ebx, [edi]this.Delta; // Массив имён находится в IMAGE_IMPORT_DESCRIPTOR.u1.AddressOfData


-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 22 сентября 2006 23:56
· Личное сообщение · #24

Rascal пишет:
модификации и понимаемость

Абсолютно согласен!

-----
My love is very cool girl.




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 23 сентября 2006 12:32 · Поправил: Demon666
· Личное сообщение · #25

Rascal
Да нет, тут было чуть по-другому calc.exe был открыт до запуска ImportAdd PETools`ом.
Я же писал времени нет! (что, эти слова трудны для понимания!)
PETools показывает
Import Directory 00012B80 0000008C
ImportAdd показывает
IT RVA 00012B82 00011F81 0000008C

theCollision
Не ожидал, что тебе языки программирования высокого уровня стали больше нравиться.

[Добавил]
Rascal
Сорс прикольный получился, только сейчас посмотрел, respect!

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 23 сентября 2006 15:06 · Поправил: Rascal
· Личное сообщение · #26

Demon666 пишет:
Я же писал времени нет! (что, эти слова трудны для понимания!)

Ладно. Просто у меня тоже времени не много.

Demon666 пишет:
PETools показывает
Import Directory 00012B80 0000008C
ImportAdd показывает
IT RVA 00012B82 00011F81 0000008C

Думаю пофиксить не проблема. Главным было найти последние записи и вписать новую импортируемую библу и функцию из неё. Вывод и прочие красивости вообще просто для интереса да отладки делал

Demon666 пишет:
Не ожидал, что тебе языки программирования высокого уровня стали больше нравиться.

Всему свой язык. Ассемблер - не панацея. Так же как и делфи, с++, бэйсик. Это частая ошибка - буду писать на асме потому что это круто.
ЗЫ: да, ничё так. самому нравится: комменты не влом было лепить. Асм творит с человеком чудеса

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 23 сентября 2006 23:03
· Личное сообщение · #27

theCollision пишет:
theCollision
Не ожидал, что тебе языки программирования высокого уровня стали больше нравиться.

Ассемблер, крут! В том плане, что он учит думать и думать хорошо, но не в плане отладки,
а в плане кода! и как что должно работать! Ты видишь напрямую твой же код, но только в
окне дебагера, т.е. ты говоришь на одном языке с процессором!
Но когда проект большой? и тебе его в лом писать! И тебе охота вообще побыстрее от него
отмазаться? И тебе нехочется к нему возвращаться более! И тебе вообще пох на то что он
большой по размеру и не оптимизирован! Да бывает и такое! К примеру:

- У меня на работе часто стоит задача из одного файла одного формата раз в 3 минуты пе-
реложить в БД Oracle
Думаешь я буду писать проект на ассемблере чтобы зацепиться к Oracle, и кинуть туды данные?
Нет уж, я набросаю ADO компонентов, настрою коннект строку, скажу ADO*.connected = true;
и Все!

-----
My love is very cool girl.




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 24 сентября 2006 00:53
· Личное сообщение · #28

Дык я не утверждаю что ASM лучше, я только указал на мусор который после себя оставляет компилятор C++(?) (и никого я не собирался учить оптимизации!)
И вообще я непонимаю тех людей которые пишут на MASM и применяют метки для перехода, пример:
InitTableLoop:
xor eax, eax
mov al, bl
xor ecx,ecx
entryLoop:
test eax, 1
jz no_topbit
shr eax, 1
xor eax,0EDB88320h
jmp entrygoon
no_topbit:
shr eax, 1
entrygoon:
inc ecx
test ecx, 8
jz entryLoop
mov dword ptr [ebx*4 + edx], eax
inc ebx
test ebx, 256
jz InitTableLoop
Это какую голову надо иметь, чтобы придумывать их, когда есть альтернатива:
.if
.endif
.repeat
.until …

Вот в данном случае (это я о сабже) считаю, что лучше использовать FASM (идеальная среда для разработки протекторов короче для PE-формата.)
По моему мнению, легче перейти с TASM на FASM, чем с MASM на FASM.
www.wasm.ru/forum/viewtopic.php?id=16145
Читаем до конца!!!

Люди, которые переходят на ASM (рано или поздно) сталкиваются с проблемой создать первый рабочий *.exe. Для этого существуют IDE, которые настроены уже под определенный пакет, вот для примера RadASM, весь Интернет его хвалит, но сколько раз я на нем не пытался сделать хотя бы маленький проект, все сводилось на нет. Неудобный до ужаса, глючный (не знаю как сейчас) чего только стоит визуальный редактор ресурсов с его личным каким-то форматом.
Другое дело менее популярный и медленно развивающийся WinAsm, очень удобный для больших проектов. И тем более сейчас, когда был написан плагин для FASM!

Большой проект на ASM`е писать трудно, когда только начинаешь, но когда у тебя появляются *.inc, причем много и с грамотным кодом остается незначительно изменять и их соединять (короче типа конструктора) вот и все!

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 24 сентября 2006 02:13
· Личное сообщение · #29

Demon666 пишет:
Большой проект на ASM`е писать трудно, когда только начинаешь, но когда у тебя появляются *.inc, причем много и с грамотным кодом остается незначительно изменять и их соединять (короче типа конструктора) вот и все!

Смотри, выбор асма как я зыка для большого проекта должен быть чем-то обоснован. Скорость работы например - с++ оптимазит гораздо лучше. Простота модификации - сомнительно. Понимания - там же. Знать работу процессора - ну написал на асме, знаю как проц работает. Но в проекте это до лампочки ;) А вот скорость разработки важна. Если размер нужен, то например в с++ пишешь:
#pragma comment(linker,"/MERGE:.rdata=.text")
#pragma comment(linker,"/FILEALIGN:512 /SECTION:.text,EWRX /IGNORE:4078")
#pragma comment(linker,"/ENTRY:New_WinMain")
#pragma comment(linker,"/NODEFAULTLIB")

И вперёд юзать VirtualAlloc да HeapAlloc. Размер получишь асмовый, но синтаксис с++.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 213.5 (наставник)
Активность: 0.120
Статус: Участник
забанен

Создано: 24 сентября 2006 04:26 · Поправил: Demon666
· Личное сообщение · #30

Ну, хорошо чуть обосную (если неправ, то буду рад выслушать того, кто больше меня знает!?)
Отталкиваться надо от самой темы, возьмем для примера CODE-RIP и предположим, нам нужна готовая процедура CRC32, в крипто мы несильны, да и времени нет с этим разбираться! (это я так легкий пример привожу)
Берем прогу Total Commander последней версии, распакуем (UPX –d ) и запустим через некоторое время появиться, наг, значит, там есть какая-то проверка, ищем находим:
О да! То, что нам нужно! =)
(выбор: потратили две минуты + десять, для того чтобы вставить в нашу программу или сидеть втыкать в бесконечные алгоритмы “хеша”!?)
CODE:0058FCE8 sub_58FCE8 proc near
CODE:0058FCE8 push ebx
CODE:0058FCE9 mov ds:dword_5DC80C, offset dword_5DC40C
CODE:0058FCF3 xor ecx, ecx
CODE:0058FCF5
CODE:0058FCF5 loc_58FCF5:
CODE:0058FCF5 movzx eax, cx
CODE:0058FCF8 mov dx, 0FFF8h
CODE:0058FCFC
CODE:0058FCFC loc_58FCFC:
CODE:0058FCFC test al, 1
CODE:0058FCFE jz short loc_58FD09
CODE:0058FD00 shr eax, 1
CODE:0058FD02 xor eax, 0EDB88320h
CODE:0058FD07 jmp short loc_58FD0B
CODE:0058FD09 ; ---------------------------------------------------------------------- -----
CODE:0058FD09
CODE:0058FD09 loc_58FD09:
CODE:0058FD09 shr eax, 1
CODE:0058FD0B
CODE:0058FD0B loc_58FD0B:
CODE:0058FD0B inc dx
CODE:0058FD0E jnz short loc_58FCFC
CODE:0058FD10 movzx edx, cx
CODE:0058FD13 mov ebx, ds:dword_5DC80C
CODE:0058FD19 mov [ebx+edx*4], eax
CODE:0058FD1C inc ecx
CODE:0058FD1D cmp cx, 100h
CODE:0058FD22 jnz short loc_58FCF5
CODE:0058FD24 pop ebx
CODE:0058FD25 retn
CODE:0058FD25 sub_58FCE8 endp

Вопрос есть желание переводить этот код на язык высокого уровня!? (когда в ASM`е знания никакие)

-----
ЗЫ: истЕна где-то рядом, Welcome@Google.com



. 1 . 2 . >>
 eXeL@B —› Программирование —› Таблица импорта в PE
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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