1 Отредактировано mbele (31-10-2012 16:30:04)

Тема: Пишем упаковщик PE-файлов по шагам.

Иду по шагам  в руководстве
создал папку
C:\_temp\_Kaimi   ... в ней такие директории 

lzo-2.06
pe_lib                     <--- pe_lib_0.1.11.zip 
samples
simple_pe_packer
pe_lib_vc10.sln
pe_lib_vc9.sln

Далее вхожу  в папку  simple_pe_packer и открываю в VS2010 simple_pe_packer.sln
Становлюсь на simple_pe_packer Далее главное меню - Проект - Добавить - Добавить существующий
- Выбрал ..\pe_lib\pe_lib.vcproj
http://img.ararat-online.ru/image.php?id=95B3_509126B5
Собрал lzo-2.06
Собрал pe_lib     

Теперь такие папке в simple_pe_packer

_UpgradeReport_Files
Debug
simple_pe_packer
simple_pe_packer.opensdf
simple_pe_packer.sdf
simple_pe_packer.sln
simple_pe_packer.suo
UpgradeLog.XML

Причем в папке Debug

lzo-2.06.lib
pe_lib.lib

Становлюсь на
Построение - Перестроить проект
...

1>  Создание кода...
1>Lib:
1>  lzo-2.06.vcxproj -> C:\_temp\_Kaimi\simple_pe_packer\Debug\lzo-2.06.lib
1>FinalizeBuildStatus:
1>  Файл "Debug\lzo-2.06.unsuccessfulbuild" удаляется.
1>  Обращение к "Debug\lzo-2.06.lastbuildstate".
1>
1>Построение успешно завершено.
1>
1>Затраченное время: 00:00:02.71
2>------ Перестроение всех файлов начато: проект: simple_pe_packer, Конфигурация: Debug Win32 ------
2>Построение начато 31.10.2012 15:28:18.
2>_PrepareForClean:
2>  Файл "Debug\simple_pe_packer.lastbuildstate" удаляется.
2>InitializeBuildStatus:
2>  Обращение к "Debug\simple_pe_packer.unsuccessfulbuild".
2>ClCompile:
2>  main.cpp
2>LINK : fatal error LNK1104: не удается открыть файл "../../Debug/pe_lib.lib"
2>
2>СБОЙ построения.
2>
2>Затраченное время: 00:00:01.25
========== Перестроение всех: успешно: 1, с ошибками: 1, пропущено: 0 ==========

В чем моя ошибка, подскажите пожалуйста.

2

Re: Пишем упаковщик PE-файлов по шагам.

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

2>LINK : fatal error LNK1104: не удается открыть файл "../../Debug/pe_lib.lib"

этот путь в настройках проекта, чтобы он указывал на pe_lib.lib корректно.

3 Отредактировано mbele (31-10-2012 19:51:09)

Re: Пишем упаковщик PE-файлов по шагам.

Спасибо.
Тут поправил и собрался.

#ifndef _M_X64
#ifdef _DEBUG
#pragma comment(lib, "../Debug/pe_lib.lib")
#pragma comment(lib, "../Debug/lzo-2.06.lib")
#else
#pragma comment(lib, "../Release/pe_lib.lib")
#pragma comment(lib, "../Release/lzo-2.06.lib")
#endif
#else

4 Отредактировано mbele (31-10-2012 19:59:31)

Re: Пишем упаковщик PE-файлов по шагам.

А как использовать Ваш pe_lib на масме?
... и как lzo-2.06 заодно на масме тоже?
В инете примеров не нашел.
Очень хотелось бы маленький примерчик, если есть и можно конечно.

5

Re: Пишем упаковщик PE-файлов по шагам.

На каком масме? Библиотека на C++.

6

Re: Пишем упаковщик PE-файлов по шагам.

dx пишет:

На каком масме? Библиотека на C++.

Да понятно что на С++, может планировалось собрать
lib+inc  или dll- ку+inc?
чисто для желающих.

7

Re: Пишем упаковщик PE-файлов по шагам.

mbele пишет:
dx пишет:

На каком масме? Библиотека на C++.

Да понятно что на С++, может планировалось собрать
lib+inc  или dll- ку+inc?
чисто для желающих.

А не получится ее в любом случае использовать в масме по многим причинам (манглинг имен C++, C++-исключения и т.д.). Можно, конечно, сделать для библиотеки чисто сишный интерфейс, совместимый с любым языком программирования, но смысла я в этом не вижу.
Тем более все это собирается в Visual Studio 2008 или 2010 нажатием одной кнопки.

8

Re: Пишем упаковщик PE-файлов по шагам.

dx пишет:

Можно, конечно, сделать для библиотеки чисто сишный интерфейс, совместимый с любым языком программирования, но смысла я в этом не вижу.
Тем более все это собирается в Visual Studio 2008 или 2010 нажатием одной кнопки.

Оно конечно Да, но хотелось бы все же "совместимым с любым" если можно,
так как проект simple_pe_packer.exe = 1,266,176 байт в 1 файле, как бы, много,
если конечно мы не пишем его для того чтобы потом им же себя и ужимать ))
А дружественная либа pe_lib (и lzo) к масм-у была бы, думаю, востребована.
Да и пока Вы к теме не остыли ...
В любом случае спасибо.

9

Re: Пишем упаковщик PE-файлов по шагам.

Не, никакой совместимости не будет. Библиотека на плюсах, по крайней мере для меня, и я ее в таком виде и развиваю. Если Вы хотите сделать ее доступной в масме (но ЗАЧЕМ?!), то можете этим заняться - сорсы-то открыты.

Кстати, в собранном виде упаковщик 400 килобайтов со всеми блекджеками и шлюхами в виде буста и командной строки из последней статьи. Вы просто собираете в Debug-варианте.

10

Re: Пишем упаковщик PE-файлов по шагам.

dx пишет:

Вы просто собираете в Debug-варианте.

... а да, таки в Дебаг, сорри тупанул. )))
Спасибо.

11

Re: Пишем упаковщик PE-файлов по шагам.

Имеется программа, упакованная вашим упаковщиком. Видно что в папке появляется файл crypt.exe и как он создает упакованный файл программы. Как и чем распаковать этот и другие созданные вашим упаковщиком файлы, так как каждому из них присваивается индивидуальный номер ID. В командах консоли crypt.exe нет строки unpacking... Спасибо за помощь.....!!!

12

Re: Пишем упаковщик PE-файлов по шагам.

Почитай про ручную распаковку с помощью OllyDbg скажем. OEP там вроде по статичному адресу, все должно быть просто