N

Как компилировать dll на C++ для MU Online. Подсказки и полезности.

Автор napuk228, 2010 Авг. 10, 17:40

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlinec++компилирование dll

napuk228

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

https://www.megaupload.com/?d=IV5U6B50

Mr.Kernighan


napuk228

#2
Спасиба                                            

epmak

#3
cpp = c++ = VS, builder и т.д.

napuk228

3.5~ gb  не фига себе O_O  качаю... но придется немного подождать.... Нету лайтс версии какойто ?

epmak

#5
express есть visual studio ~700mb
Спойлер
[свернуть]

napuk228

#6
Да уже всеравно почти докачалось... что 700 что 3.5 гб ... всеравно немного ждать.. )

В ходе компиляции ошибка.

Ошибка   1   fatal error C1083: Не удается открыть файл include: windows.h: No such file or directory   c:documents and settingsuserрабочий столmuguardstdafx.h   17   MuGuard

Вот сам фаил:

Спойлер
// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//      are changed infrequently
//

#if !defined(AFX_STDAFX_H__50DF9A22_ED87_4980_8F7D_DFFCFE6A44CB__INCLUDED_)
#define AFX_STDAFX_H__50DF9A22_ED87_4980_8F7D_DFFCFE6A44CB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


// Insert your headers here
#define WIN32_LEAN_AND_MEAN      // Exclude rarely-used stuff from Windows headers

#include <windows.h>
#include <cstdio>

// TODO: reference additional headers your program requires here

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__50DF9A22_ED87_4980_8F7D_DFFCFE6A44CB__INCLUDED_)
[свернуть]

Как я понял нету Windows.h ...  и что мне сделать ?

Mr.Kernighan

Видимо проблема в путях. Собственно где и какую студию качал?

napuk228

Да все на регзоне  пишет что работает ... ( там сомого windows.h нет

Mr.Kernighan

Ну в принципе я тоже компилю удачно, поэтому и задал тебе вопрос, где и какую студию качал!?

Ссылка MuGuard.dll: https://www.sendspace.com/file/f4eyvj
Экспортируемая функция: Loaded

napuk228

Спасиба )

А скачал вот откуда

тык Тык тЫК

Интересно а вы сможите хукнуть этот маин O_O ? :)

ОпаСнНый МаИН o_O

Mr.Kernighan

#11
Так можно динамически подгрузить данную dll в процесс
Спойлер
Push DllName            ; Сохраняем имя dll
Call LoadLibraryA       ; Подгружаем в процесс
Or Eax, Eax               ; Логическое "Или" в случае если Eax будет равен 1, dll успешно подргузилась, иначе на выход.
Je MarkMessageBoxA         ; Условный переход на выход
Push ExportProcedure ; Сохраняем в стеке имя экспортируемой процедуры
Push Eax                   ; Здесь храниться имя dll
Call GetProcAddress   ; Получаем адрес dll
Call Eax                     ; Здесь передаем управление на dll
Jmp EntryPoint           ; Безусловный переход на точку входа
Push 0
Call ExitProcess
MarkMessageBoxA:
Push 0
Push MsgTitle             ; Типа "Can't load DllName.dll"
Push MsgCaption        ; Типа "Error"
Push 0
Call MessageBoxA
Push 0
Call ExitProcess
[свернуть]
MarkMessageBoxA - метка, установил для более удобной визуализации чтобы ты понял куда необходимо сделать переход.
Естественно можно это сделать и без MessageBox, собственно по вкусу :)

napuk228

#12
Цитата: Brain от 2010 Авг. 10, 17:37  Так можно динамически подгрузить данную dll в процесс
Спойлер
Push DllName            ; Сохраняем имя dll
Call LoadLibraryA       ; Подгружаем в процесс
Or Eax, Eax               ; Логическое "Или" в случае если Eax будет равен 1, dll успешно подргузилась, иначе на выход.
Je MessageBoxA         ; Условный переход на выход
Push ExportProcedure ; Сохраняем в стеке имя экспортируемой процедуры
Push Eax                   ; Здесь храниться имя dll
Call GetProcAddress   ; Получаем адрес dll
Call Eax                     ; Здесь передаем управление на dll
Jmp EntryPoint           ; Безусловный переход на точку входа
Push 0
Call ExitProcess
Mark:
Push 0
Push MsgTitle
Push MsgCaption
Push 0
Call MessageBoxA
Push 0
Call ExitProcess
[свернуть]
Mark - метка, установил для более удобной визуализации, чтобы ты понял куда необходимо сделать переход.
Естественно можно это сделать и без MessageBox, собственно по вкусу :)


увы... я с ollydbg не дружу с самого знакомства... постоянно одна и таже ошибка с маин...  (

"Unable to locate data in executable file"

при сохранении

Mr.Kernighan

#13
Кстати, ты уже задавался таким вопросом, на который я дал тебе ответ. Просто приложи немного больше усилий, и все получится ;)
/index.php?topic=7864.0

п.с. - про секции можешь почитать на wasm.ru ; Скорее всего у тебя возникнет вопрос о том что это такое.

napuk228

#14
Цитата: Brain от 2010 Авг. 10, 19:13  Кстати, ты уже задавался таким вопросом, на который я дал тебе ответ. Просто приложи немного больше усилий, и все получится ;)
/index.php?topic=7864.0

п.с. - про секции можешь почитать на wasm.ru ; Скорее всего у тебя возникнет вопрос о том что это такое.
И так ок я готов но давай по порядку..
Вот смотри открыл я пе едитором. Как понять в каких именно секциях приравнивать Raw & Virtual Size ??



------------------------------Добавлено------------------------------------------------

И так я поменял Raw Size .. сделал его равным Virtual Size сначало в первой секции потом во второй потом в третьей  вот как на скрине :



Нечего не вышло.. когда я тронул 4 секцию маин перестал работать. думаю остальные тоже нет смысла трогать. Сейчас буду думать как винхексом добавить секции.

------------------------------Добавлено------------------------------------------------

Попытался добавить новую секцию с помощью LordPE так как думаю там легче..но при открытии олькой ошибка Unable to start



А вот и сама секция : (Я Надеюсь что виртуал и рав размер = 0 и это правильно так как секция пустая.... ну это мое мнение  )

 




------------------------------Добавлено------------------------------------------------

пробовал как в той теме делать получилось сохранить но  маин выдает ошибку..
вот код





------------------------------Добавлено------------------------------------------------
Изменил ЕП для пропуска этих пустых секций

08769000 -> 0013F055

Заходит в игру с кодом аказаном на скрине выше... но проверка на dll не работает потому что убрал dll и всеравно заходит ... думаю что и читы пойдут.

------------------------------Добавлено------------------------------------------------

Еще несколько раз написал код... по другому... все правильно.. но при входе не требует наличие dll .. Brain жду тебя проверишь в чем может быть ошибка.Хотя её как таковой не должно быть.

Mr.Kernighan

Открой секцию .text и попробуй уравнять VirtualSize/RawSize в значение 00149000, жду ответа о результате.

napuk228

Цитата: Brain от 2010 Авг. 11, 08:42  Открой секцию .text и попробуй уравнять VirtualSize/RawSize в значение 00149000, жду ответа о результате.
нО У МЕНЯ НЕТ СЕКЦИИ .text

Mr.Kernighan

Такого быть не может, так как это секция кода... Может быть main упакован? Скачай Peid и попробуй проверить.

napuk228


Mr.Kernighan

TeamVeawer есть? Хочу посмотреть на код.
ICQ: 647-929-109

Похожие темы (5)

Сообщений: 79
Просмотров: 52074

Сообщений: 54
Просмотров: 36968

Сообщений: 15
Просмотров: 22586