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

 eXeL@B —› Программирование —› Библиотека для работы с Portable Executable (C++)
<< . 1 . 2 .
Посл.ответ Сообщение

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

Создано: 08 сентября 2012 13:24 · Поправил: Kaimi
· Личное сообщение · #1

Основные фичи библиотеки:
[+] Чтение 32-разрядных и 64-разрядных PE-файлов (PE, PE+) для Windows, возможность единообразной работы с обоими форматами
[+] Создание PE/PE+ файлов с нуля
[+] Пересборка 32-разрядных и 64-разрядных PE-файлов
[+] Работа с директориями и заголовками
[+] Конвертирование адресов
[+] Чтение и редактирование секций PE-файла
[+] Чтение и редактирование таблицы импортов
[+] Чтение и редактирование таблицы экспортов
[+] Чтение и редактирование таблиц релокаций
[+] Чтение и редактирование ресурсов
[+] Чтение и редактирование TLS
[+] Чтение конфигурации образа (image config)
[+] Чтение базовой информации .NET
[+] Чтение информации о привязанном импорте
[+] Чтение директории исключений (только PE+)
[+] Чтение отладочной директории с расширенной информацией
[+] Вычисление энтропии
[+] Изменение файлового выравнивания
[+] Изменение базового адреса загрузки
[+] Работа с DOS Stub'ом и Rich overlay
[+] Высокоуровневое чтение ресурсов: картинки, иконки, курсоры, информация о версии, строковые таблицы, таблицы сообщений
[+] Высокоуровневое редактирование ресурсов: картинки, иконки, курсоры, информация о версии

Словом, все, что вы хотели сделать с PE, но боялись спросить, как. Весь код библиотеки снабжен обильными комментариями на английском языке. В проект включено 25 примеров работы с библиотекой, которые показывают, как работать с той или иной частью библиотеки (комментарии на русском языке). Имеются солюшены для MSVC++ 2008 и 2010. Справочной информации пока нет, возможно, соберусь ее как-нибудь написать.

Библиотека не использует WinAPI или другие библиотеки, только STL.

Библиотека и примеры собираются под Windows x86 и x64, но для того, чтобы работать с PE+, собирать под x64 необязательно. Библиотека не исполняет считываемые файлы, не маппит их в память, поэтому с ее помощью можно спокойно открывать подозрительные исполняемые файлы и работать с ними. Теперь собирается еще и под Linux.

Проект залит на code.google.com на случай возможных правок и улучшений, так как сейчас библиотека в стадии альфа-версии.

Автор: dx
Репозиторий: --> Link <--
Комментарии принимаются тут: --> Link <--

2970_08.09.2012_EXELAB.rU.tgz - pe_lib.zip

| Сообщение посчитали полезным: SWR, gena-m, mak, Dynamic, r_e, ntldr, NikolayD, SReg, _ruzmaz_, =TS=, Gideon Vi, MasterSoft, BAHEK, sivorog, vnekrilov, Functor, UniSoft, hlmadip, HandMill, plutos, Veliant, -= ALEX =-, elch, invalid, Artem_N, t0ShA, HiEndsoft, verdizela, obfuskator, tomac, sendersu, nick8606, MarcElBichon, ValdiS, Coderess

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

Создано: 12 октября 2012 21:54
· Личное сообщение · #2

<<Такое впечатление, что человек-тролль шпарит цитаты из какой-то книжки, а мы тут с ним спорим...
Ну это не правда, я просто излагал свои мысли вслух.
А ты хотел, чтобы я в свободное от работы время ещё смену отпахал и тебе код забесплатно написал с целью удивить и поразить... Скажи зачем деструкторы делают виртуальными в базовом классе, а потом поговорим о серьёзных вещах. А то может ты школьник Должен же быть фейс-контроль



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

Создано: 12 октября 2012 21:56 · Поправил: F_a_u_s_t
· Личное сообщение · #3

TheNozza
Поддержу reversecode давайте свой код, а мы посмотрим и оценим, или назовите проекты в которых вы участвовали или проектировали иначе это просто ля ля и тупо троллинг.
Add:
Пока курил чеполино родил.
Виртуальный деструкт нужен для удаления наследников, иди читай раскраски, ну или loki можешь почитать.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 12 октября 2012 21:57
· Личное сообщение · #4

забанте его скорее))) это не закончится никогда



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

Создано: 12 октября 2012 22:13
· Личное сообщение · #5

<<давайте свой код, а мы посмотрим и оценим, или назовите проекты в которых вы участвовали или проектировали иначе это просто ля ля и тупо троллинг.

Назовём вещи своими именами:
Качество моего кода оценивает не огалделая публика, а Software Architect(есть такой спец). Вам желаю того же.
open source я не пишу - больше повторять не буду.

Троллинг по Вашему мнению - ну баньте, это ваше право, я от этого ничего не потеряю, мне параллельно. Я на Вас не работаю дорогие мои




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 12 октября 2012 22:18
· Личное сообщение · #6

TheNozza пишет:
Качество моего кода оценивает не огалделая публика, а Software Architect(есть такой спец).

бла бла ни очем
а спеца Software Architect(есть такой спец) я бы еще проверил на проф пригодность,
на rsdn где таких спецов как вы хоть Ж жуй, ни один не может пройти у другого проф пригодность, а люди там серьезней чем вы)) и работают в приличных компаниях,
так что доморощеный вы мой, забыл откуда там вы?... пЕйШите свой код для вашего архитектора дальше))



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

Создано: 12 октября 2012 22:19
· Личное сообщение · #7

TheNozza пишет:
Качество моего кода оценивает не огалделая публика, а Software Architect

Да да, назовем вещи своими именами либо вы тормоз, либо медленный газ, какие в опу архитекторы в своем проекте который пилится в свободное время?
У вас что, нет домашнего кода в виде утилит и прочих мелочей?
В бросы по азам тоже мимо.
Ваш слив засчитан.
Посмотри степашку с хрюшей и иди спать, завтра в школу рано вставать.



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

Создано: 12 октября 2012 22:30
· Личное сообщение · #8

<<У вас что, нет домашнего кода в виде утилит и прочих мелочей?
<<Посмотри степашку с хрюшей и иди спать, завтра в школу рано вставать.
Ты тупой что ли, я дома на компе проприентарные исходники не держу - они находятся в репозиториях системы контроля версий, к которым ты хрен с улицы доступ получишь, сборка на build-серверах проходит, после чего бинарь продают - примерно так упрощённо...



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

Создано: 12 октября 2012 22:33 · Поправил: Модератор
· Личное сообщение · #9

TheNozza пишет:
Я на Вас не работаю дорогие мои

TheNozza пишет:
код забесплатно написал с целью удивить и поразить


Ох, да сколько можно уже.. Человек - не только материальное существо...Ну в смысле разумный человек, а не тупорылый MacFriend с гордой татухой "Свободная касса""Спасибо, что без сдачи" во всю спину, к которым ты относишься... Зачем ты здесь? Вот скажи.. Какова твоя цель дальнейшего прибывания здесь? Так - пришел, насрал, и кончил от ничем необоснованного самомнения при написании своих постов...
TheNozza пишет:
Должен же быть фейс-контроль

Ты его уже не прошел...

P.S. В сотый раз хочу напомнить о предложении усожнения регистрации, с целью избавления от подобной деморализующей творческих людей ... ...

От модератора: пост подкорректирован, половина поста, содержащая особую ненависть, вырезана




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 12 октября 2012 23:32
· Личное сообщение · #10

Весь топик уже зафлудили. Хорош уже, может. В идеале тут надо стирать 90% топика.
Что касается TheNozza, последнее предупреждение, уже утомил забегать во все подряд топики, в том числе и многомесячной давности, и везде гнуть пальцы. Это вообще не разработчиков форум, если что.
Что касается остальных, можно было поглядеть другие его посты и разобраться, что к чему. Или погуглить на ник ещё, если хочется.



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

Создано: 15 октября 2012 00:00 · Поправил: sys_dev
· Личное сообщение · #11

Kaimi
1)
Перепиши плиз на Header-only. А то если честно ломает подключать *.cpp. В случае header-only достаточно будет один хидер с набором интерфейсных кинуть в precompiled.hpp , а то что относится к реализации в precompiled.cpp.

Другими словами: Переписывание в Header-only вашей либы повлечет за собой легкое подключение ее в новые проекты!

2)
Перейдите пожалуйста на GitHub или BitBucket. Оно того стоит! Сам сейчас юзаю Mercurial и после SVN не понимаю, как я последний вообще юзал, он же из ряда вон неудобный! Могу помочь в освоении

3)
В коде фабрики увидел "static std::auto_ptr<pe_base>" это деприкейтед, юзаейте std::unique_ptr или boost::unique_ptr

4)
Штука pe_bliss::pe_resource_viewer кажется слишком большой и возникает вопрос: а не слишком ли много она умеет? Может следует пересмотреть ее ответственность и разбить на более мелкие сущности? Если же все-таки ломает, то думаю имеет смысл добавить хотя бы фасадные классы для часто используемых задач



Ранг: 5.1 (гость), 5thx
Активность: 0=0
Статус: Участник

Создано: 15 октября 2012 00:42
· Личное сообщение · #12

sys_dev пишет:
1)
Перепиши плиз на Header-only. А то если честно ломает подключать *.cpp. В случае header-only достаточно будет один хидер с набором интерфейсных кинуть в precompiled.hpp , а то что относится к реализации в precompiled.cpp.

Другими словами: Переписывание в Header-only вашей либы повлечет за собой легкое подключение ее в новые проекты!

2)
Перейдите пожалуйста на GitHub или BitBucket. Оно того стоит! Сам сейчас юзаю Mercurial и после SVN не понимаю, как я последний вообще юзал, он же из ряда вон неудобный! Могу помочь в освоении

3)
В коде фабрики увидел "static std::auto_ptr<pe_base>" это деприкейтед, юзаейте std::unique_ptr или boost::unique_ptr

4)
Штука pe_bliss::pe_resource_viewer кажется слишком большой и возникает вопрос: а не слишком ли много она умеет? Может следует пересмотреть ее ответственность и разбить на более мелкие сущности? Если же все-таки ломает, то думаю имеет смысл добавить хотя бы фасадные классы для часто используемых задач


1. Это же жесть, столько кода в хедерах размещать +) Да и зачем подключать cpp? Собрал либу и линкуешься с ней.

2. Разница в чем для такого маленького проекта? В нем не будет большого количества ветвей, которые надо слеплять, или чего-то подобного. SVN для меня очень удобен, потому что я пользуюсь в нем одной кнопкой.

3. Это не деприкейтед, это совместимость с C++03. Иначе я бы и лямбды давно поюзал и auto как минимум. А буст юзать ради одной вещи тоже не буду, пусть либа будет независимая. Тем более, бустовые смартпоинтеры конструируются из std::auto_ptr.

4. pe_resource_viewer работает только с ресурсами и имеет много вложенных типов. Делить не вижу смысла. Отдельно вынесен pe_resource_manager, который pe_resource_viewer плюс высокоуровневое редактирование ресурсов. Странно, что вас не смутил мегакласс pe_base, который умеет еще больше



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

Создано: 15 октября 2012 13:35
· Личное сообщение · #13

>>Это же жесть, столько кода в хедерах размещать +)
Вы боитесь? Думаете медленнее компиляция будет? Если да , то замерьте! Не сильно, я по этой причине(боязнь долгой компиляции) не юзал Boost и понаписал докучи костылей и велосипедах, о чем жалею. У хидер-онли куда больше преимуществ чем у подхода хидер-либфайл.

>>Разница в чем для такого маленького проекта?
Сейчас маленький, но при таком извратном формате с достаточно большим кол-вом нюансов рискует вырасти в большой! "SVN для меня очень удобен", когда-то и я так утверждал и получил справедливое "руки у тебя из жопы", сейчас понимаю как в то время это метко было сказано. Меркуриал имеет больше преимуществ для повседневной работы чем SVN. Замечу еще раз для обыденной и повседневной работы обычного программера, а не "сферический конь в вакууме выдуманный теоретиками". Попробуйте и потом , после хотя бы месяца работы попробуйте повторить еще раз: "SVN для меня очень удобен"

>>Это не деприкейтед, это совместимость с C++03.
Давайте еще все ПО для Win 98 портировать из соображений совместимости? Да и если уж про C++03 пошла речь, вы не заметили еще один вариант "boost::unique_ptr".

>>Тем более, бустовые смартпоинтеры
Которые значительно лучше работают чем std::auto_ptr !!! Не надо думать что вы один умный, а бусто-девелоперы мудаки.

>>Странно, что вас не смутил мегакласс pe_base, который умеет еще больше
До него не добрался )))




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 15 октября 2012 14:27 · Поправил: reversecode
· Личное сообщение · #14

sys_dev пишет:
У хидер-онли куда больше преимуществ чем у подхода хидер-либфайл.

sys_dev пишет:
Не надо думать что вы один умный, а бусто-девелоперы мудаки.

Г разработчик бусто девелопер детектед,
все в хидеры и буст наше всё! лол



Ранг: 5.1 (гость), 5thx
Активность: 0=0
Статус: Участник

Создано: 15 октября 2012 16:31 · Поправил: GRRRL Power
· Личное сообщение · #15

sys_dev, странные аргументы у вас.

1. Весь код в хедере равносилен нечитаемому интерфейсу, как минимум, кроме замедления компиляции, да. А "боязнь долгой компиляции" и из-за этого неюзание годных вещей - это уже сугубо ваша проблема.

2. Ничего кроме "SVN лажа и меркуриал рулит" я не увидел. Никаких доводов, примеров, в чем реально преимущества, и почему я внезапно должен взять и все перевести на другую систему контроля версий, если меня и эта устраивает.

3. Глупый сарказм, 11-е плюсы только-только приняли и компиляторы даже не все фичи пока что из них поддерживают. А про буст я уже сказал - не буду я его вклинивать в либу ради одного мелкого класса. Кстати, так любимый вами буст, и в самых древних компиляторах собирается, как раз под Win95.

4. Опять то же самое - "лучше, круче, лажа, говно". std::auto_ptr задумывался для того, чтобы возвращать указатели из функций безопасно, и он с этой задачей отлично справляется. Не нравится он вам - сконструируйте из него свой unique_ptr сразу после вызова фабрики. Я писал уже, что в бустовых смартпоинтерах конструкторы из auto_ptr присутствуют. В auto_ptr, в конце концов, есть метод release, делайте с указателем, что хотите.



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

Создано: 15 октября 2012 16:43
· Личное сообщение · #16

>>Весь код в хедере равносилен нечитаемому интерфейсу,
Если руки не в правильном месте, то да, ой как нечитаемо!

>>Ничего кроме "SVN лажа и меркуриал рулит" я не увидел.
А зачем я должен писать преимущества этого тута, когда в гугле легко найдется 5-10 вменяемых статей поясняющих это?



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

Создано: 15 октября 2012 16:57
· Личное сообщение · #17

sys_dev пишет:
А зачем я должен писать преимущества этого тута

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



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

Создано: 15 октября 2012 17:02 · Поправил: Kaimi
· Личное сообщение · #18

Открыл гугл, получил по первой ссылке следующий перечень отличий:

Git is much faster than Subversion
Subversion allows you to check out just a subtree of a repository; Git requires you to clone the entire repository (including history) and create a working copy that mirrors at least a subset of the items under version control.
Git's repositories are much smaller than Subversions (for the Mozilla project, 30x smaller)
Git was designed to be fully distributed from the start, allowing each developer to have full local control
Git branches are simpler and less resource heavy than Subversion's
Git branches carry their entire history
Merging in Git does not require you to remember the revision you merged from (this benefit was obviated with the release of Subversion 1.5)
Git provides better auditing of branch and merge events
Git's repo file formats are simple, so repair is easy and corruption is rare.
Backing up Subversion repositories centrally is potentially simpler - since you can choose to distributed folders within a repo in git
Git repository clones act as full repository backups
Subversion's UI is more mature than Git's
Walking through versions is simpler in Subversion because it uses sequential revision numbers (1,2,3,..); Git uses unpredictable SHA-1 hashes. Walking backwards in Git is easy using the "^" syntax, but there is no easy way to walk forward.


Расскажите пожалуйста, какие преимущества Git крайне важны для небольшого проекта, который поддерживает ровно один человек?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 15 октября 2012 17:02
· Личное сообщение · #19

sys_dev
опенсоурс етить его, берете форкаете и делаете как вам нравится, в чем проблем?



Ранг: 5.1 (гость), 5thx
Активность: 0=0
Статус: Участник

Создано: 07 ноября 2012 20:17
· Личное сообщение · #20

Библиотека обновлена, апну темку. Поправлено много багов, код разбит на независимые куски и отрефакторен. Добавлены юнит-тесты. Всё по-прежнему собирается под VS2008, VS2010 и GCC под nix. Качать, как обычно, здесь.



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

Создано: 07 ноября 2012 20:46
· Личное сообщение · #21

GRRRL Power
К сожалению под builder не работает, хотя понимаю что он мутант итд, но все же на заметку.
Проверял на builder xe.



Ранг: 5.1 (гость), 5thx
Активность: 0=0
Статус: Участник

Создано: 07 ноября 2012 21:17
· Личное сообщение · #22

Если бы у меня был билдер, я бы запилил, чтобы собиралось, а ставить ради только этого пока желания нет. Скорее всего, дефайны неправильно разруливают операционку и считают, что билдер - это *nix. Если Вам будет не лень, можно попробовать в файле pe_structures.h в самом начале сделать, чтобы дефайн PE_BLISS_WINDOWS выставлялся и для билдера.



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

Создано: 07 ноября 2012 23:11
· Личное сообщение · #23

GRRRL Power
Скорее разногласие билдера с богом и стандартом.
Портянка с жалобами:
Code:
  1. [BCC32 Error] pe_32_64.h(219): E2462 'virtual' can only be used with non-template member functions
  2. [BCC32 Error] pe_32_64.h(219): E2139 Declaration missing ;
  3. [BCC32 Error] pe_32_64.h(229): E2462 'virtual' can only be used with non-template member functions
  4. [BCC32 Error] pe_32_64.h(229): E2139 Declaration missing ;
  5. [BCC32 Error] pe_32_64.h(234): E2462 'virtual' can only be used with non-template member functions
  6. [BCC32 Error] pe_32_64.h(234): E2139 Declaration missing ;
  7. [BCC32 Error] pe_32_64.h(242): E2462 'virtual' can only be used with non-template member functions
  8. [BCC32 Error] pe_32_64.h(242): E2238 Multiple declaration for 'pe<PEClassType>::image_directory'
  9. [BCC32 Error] pe_32_64.h(229): E2344 Earlier declaration of 'pe<PEClassType>::image_directory'
  10. [BCC32 Error] pe_32_64.h(242): E2139 Declaration missing ;
  11. [BCC32 Error] pe_32_64.h(247): E2462 'virtual' can only be used with non-template member functions
  12. [BCC32 Error] pe_32_64.h(247): E2139 Declaration missing ;
  13. [BCC32 Error] pe_32_64.h(253): E2462 'virtual' can only be used with non-template member functions
  14. [BCC32 Error] pe_32_64.h(253): E2139 Declaration missing ;
  15. [BCC32 Error] pe_32_64.h(261): E2293 ) expected
  16. [BCC32 Error] pe_32_64.cpp(648): E2316 'imported_functions_list' is not a member of 'pe_base'
  17. [BCC32 Error] pe_32_64.cpp(55): E2251 Cannot find default constructor to initialize base class 'pe_base'
  18. [BCC32 Error] pe_32_64.cpp(64): E2247 'pe_base::read_dos_header(istream &)' is not accessible
  19. [BCC32 Error] pe_32_64.cpp(65): E2247 'pe_base::read_pe(istream &,bool)' is not accessible
  20. [BCC32 Error] pe_32_64.cpp(65): E2227 Extra parameter in call to pe_base::read_pe(istream &,bool)
  21. [BCC32 Error] pe_32_64.cpp(12): E2251 Cannot find default constructor to initialize base class 'pe_base'
  22. [BCC32 Error] pe_32_64.cpp(13): E2247 'pe_base::has_overlay_' is not accessible
  23. [BCC32 Error] pe_32_64.cpp(15): E2247 'pe_base::dos_header_' is not accessible
  24. [BCC32 Error] pe_32_64.cpp(17): E2247 'pe_base::dos_header_' is not accessible
  25. [BCC32 Error] pe_32_64.cpp(19): E2247 'pe_base::dos_header_' is not accessible
  26. [BCC32 Error] pe_32_64.cpp(20): E2247 'pe_base::dos_header_' is not accessible
  27. [BCC32 Error] pe_32_64.cpp(21): E2247 'pe_base::dos_header_' is not accessible
  28. [BCC32 Error] pe_32_64.cpp(22): E2247 'pe_base::dos_header_' is not accessible
  29. [BCC32 Error] pe_32_64.cpp(23): E2247 'pe_base::dos_header_' is not accessible
  30. [BCC32 Error] pe_32_64.cpp(24): E2247 'pe_base::dos_header_' is not accessible
  31. [BCC32 Error] pe_32_64.cpp(536): E2451 Undefined symbol 'max_dword'
  32. [BCC32 Error] pe_32_64.cpp(546): E2451 Undefined symbol 'max_dword'
  33. [BCC32 Error] pe_32_64.cpp(556): E2268 Call to undefined function 'is_sum_safe'


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



Ранг: 5.1 (гость), 5thx
Активность: 0=0
Статус: Участник

Создано: 07 ноября 2012 23:51
· Личное сообщение · #24

Нене, эти ошибки - мой косяк. Я забыл пару ненужных (после рефакторинга) файлов удалить из либы, pe_32_64.h и cpp. Уже перезалил архив.

| Сообщение посчитали полезным: =TS=

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

Создано: 08 ноября 2012 01:15
· Личное сообщение · #25

GRRRL Power
Проверил на import, export, норм работает (без напильника), думаю можно в список компиляторов и builder добавить.

| Сообщение посчитали полезным: GRRRL Power

Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 08 ноября 2012 12:26
· Личное сообщение · #26

F_a_u_s_t пишет:
можно в список компиляторов и builder добавить.

какой именно?
Их много всяких за историю понавыпускали...



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

Создано: 08 ноября 2012 14:16
· Личное сообщение · #27

sendersu
sendersu пишет:
какой именно?
Их много всяких за историю понавыпускали...

Ну я же выше писал что builder xe на всей этой линейке должно нормально собираться, еще бы builder 2009 проверить, тоже скорее всего должно работать, на самом деле если считать не версии выпуска, а по поддержки стандарта, то версий, раз, два и все, до 2009 врядли будет работать там еще std 98 если память не изменяет.



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 08 ноября 2012 14:55 · Поправил: sendersu
· Личное сообщение · #28

F_a_u_s_t
много народу еще на старичке C++Builder 6 катаются (я например
поетому интересуюсь
Спасибо

upd
покомпилировал чуток (C++Builder 6)

пару замечаний по сборке в нем

1) #include <string.h> -> #include <cstring>
2) там где используется memcpy -> using std::memcpy; (внутри namespace pe_bliss)
то же для memset
3)

#if defined(_MSC_VER)
#define PE_BLISS_WINDOWS
#endif

->

#if defined(_WIN32) && (defined(_MSC_VER) || defined(__BORLANDC__))
#define PE_BLISS_WINDOWS
#endif


4) на етом кусочке

typedef pe_types<pe_win::image_nt_headers64,
pe_win::image_optional_header64,
pe_win::image_nt_optional_hdr64_magic,
uint64_t,
pe_win::image_ordinal_flag64,
pe_win::image_tls_directory64,
pe_win::image_load_config_directory64> pe_types_class_64;


падает

[C++ Error] pe_properties_generic.h(255): E2397 Template argument cannot have static or local linkage

конкретно не нравится параметр шаблона pe_win::image_ordinal_flag64

есть идеи как ето переписать?



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 11 ноября 2012 14:10
· Личное сообщение · #29

Import Adder - что-то после него не рабочий файл получается.

-----
продавец резиновых утёнков




Ранг: 5.1 (гость), 5thx
Активность: 0=0
Статус: Участник

Создано: 11 ноября 2012 15:09 · Поправил: GRRRL Power
· Личное сообщение · #30

HiEndsoft пишет:
Import Adder - что-то после него не рабочий файл получается.

Сложно сказать, что может быть не так. Пример бы, какой файл оказывается нерабочим, и еще код, как импорты пересобираете. Например, несколько версий назад в main.cpp примера import_adder ребилдер импортов был настроен так, чтобы обнулялась директория IMAGE_DIRECTORY_ENTRY_IAT, что могло привести к неработоспособности файла, потом я это убрал.

sendersu, чтобы нормальную сборку под билдер 6-й сделать, надо по-хорошему и примеры и тесты под него перепиливать, а после этого еще проверить, чтобы все собиралось по-прежнему и в gcc и в студии. Я пока не собираюсь таким заниматься точно



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 12 ноября 2012 10:51
· Личное сообщение · #31

GRRRL Power пишет:
Я пока не собираюсь таким заниматься точно

Я могу и хочу етим заняться, пока только 1 show-stopper (описал сверху)


<< . 1 . 2 .
 eXeL@B —› Программирование —› Библиотека для работы с Portable Executable (C++)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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