 |
|

11.04.2018, 17:45
|
|
Постоянный
Регистрация: 16.07.2017
Сообщений: 310
С нами:
4645623
Репутация:
58
|
|
Сообщение от ๖ۣۣۜШурик
не, не, не. Дополнительных файлов мне не надо.
от этого же автора ищи без дополнительных файлов. Кнопка "поиск" в помощь.
|
|
|

12.04.2018, 16:35
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Не могу вот настроить кодировку в проекте с ImGUI, использую эти функции, но ничего не помогает...
C++:
Код:
string
to_utf8
(
const
char
*
str
)
{
string res
;
int
result_u
,
result_c
;
result_u
=
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
0
,
0
)
;
if
(
!
result_u
)
return
0
;
wchar_t
*
ures
=
new
wchar_t
[
result_u
]
;
if
(
!
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
ures
,
result_u
)
)
{
delete
[
]
ures
;
return
0
;
}
result_c
=
WideCharToMultiByte
(
CP_UTF8
,
0
,
ures
,
-
1
,
0
,
0
,
0
,
0
)
;
if
(
!
result_c
)
{
delete
[
]
ures
;
return
0
;
}
char
*
cres
=
new
char
[
result_c
]
;
if
(
!
WideCharToMultiByte
(
CP_UTF8
,
0
,
ures
,
-
1
,
cres
,
result_c
,
0
,
0
)
)
{
delete
[
]
cres
;
return
0
;
}
delete
[
]
ures
;
res
.
append
(
cres
)
;
delete
[
]
cres
;
return
res
;
}
string
to_cp1251
(
const
char
*
str
)
{
string res
;
int
result_u
,
result_c
;
result_u
=
MultiByteToWideChar
(
CP_UTF8
,
0
,
str
,
-
1
,
0
,
0
)
;
if
(
!
result_u
)
return
string
(
)
;
wchar_t
*
ures
=
new
wchar_t
[
result_u
]
;
if
(
!
MultiByteToWideChar
(
CP_UTF8
,
0
,
str
,
-
1
,
ures
,
result_u
)
)
{
delete
[
]
ures
;
return
0
;
}
result_c
=
WideCharToMultiByte
(
1251
,
0
,
ures
,
-
1
,
0
,
0
,
0
,
0
)
;
if
(
!
result_c
)
{
delete
[
]
ures
;
return
0
;
}
char
*
cres
=
new
char
[
result_c
]
;
if
(
!
WideCharToMultiByte
(
1251
,
0
,
ures
,
-
1
,
cres
,
result_c
,
0
,
0
)
)
{
delete
[
]
cres
;
return
0
;
}
delete
[
]
ures
;
res
.
append
(
cres
)
;
delete
[
]
cres
;
return
res
;
}
|
|
|

12.04.2018, 16:39
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от ๖ۣۣۜШурик
Не могу вот настроить кодировку в проекте с ImGUI, использую эти функции, но ничего не помогает...
C++:
Код:
string
to_utf8
(
const
char
*
str
)
{
string res
;
int
result_u
,
result_c
;
result_u
=
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
0
,
0
)
;
if
(
!
result_u
)
return
0
;
wchar_t
*
ures
=
new
wchar_t
[
result_u
]
;
if
(
!
MultiByteToWideChar
(
1251
,
0
,
str
,
-
1
,
ures
,
result_u
)
)
{
delete
[
]
ures
;
return
0
;
}
result_c
=
WideCharToMultiByte
(
CP_UTF8
,
0
,
ures
,
-
1
,
0
,
0
,
0
,
0
)
;
if
(
!
result_c
)
{
delete
[
]
ures
;
return
0
;
}
char
*
cres
=
new
char
[
result_c
]
;
if
(
!
WideCharToMultiByte
(
CP_UTF8
,
0
,
ures
,
-
1
,
cres
,
result_c
,
0
,
0
)
)
{
delete
[
]
cres
;
return
0
;
}
delete
[
]
ures
;
res
.
append
(
cres
)
;
delete
[
]
cres
;
return
res
;
}
string
to_cp1251
(
const
char
*
str
)
{
string res
;
int
result_u
,
result_c
;
result_u
=
MultiByteToWideChar
(
CP_UTF8
,
0
,
str
,
-
1
,
0
,
0
)
;
if
(
!
result_u
)
return
string
(
)
;
wchar_t
*
ures
=
new
wchar_t
[
result_u
]
;
if
(
!
MultiByteToWideChar
(
CP_UTF8
,
0
,
str
,
-
1
,
ures
,
result_u
)
)
{
delete
[
]
ures
;
return
0
;
}
result_c
=
WideCharToMultiByte
(
1251
,
0
,
ures
,
-
1
,
0
,
0
,
0
,
0
)
;
if
(
!
result_c
)
{
delete
[
]
ures
;
return
0
;
}
char
*
cres
=
new
char
[
result_c
]
;
if
(
!
WideCharToMultiByte
(
1251
,
0
,
ures
,
-
1
,
cres
,
result_c
,
0
,
0
)
)
{
delete
[
]
cres
;
return
0
;
}
delete
[
]
ures
;
res
.
append
(
cres
)
;
delete
[
]
cres
;
return
res
;
}
ImGui::Text(to_utf8("Какие проблемы?").c_str())
Ну и шрифт надо грузить с кириллицей
|
|
|

12.04.2018, 16:46
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Сообщение от BlackKnigga
ImGui::Text(to_utf8("Какие проблемы?").c_str())
Ну и шрифт надо грузить с кириллицей
Вот про шрифт надо будет протестить, а вот to_utf8("Привет").c_str() - делал, не работало.
|
|
|

12.04.2018, 16:53
|
|
Постоянный
Регистрация: 16.07.2017
Сообщений: 310
С нами:
4645623
Репутация:
58
|
|
Сообщение от ๖ۣۣۜШурик
Вот про шрифт надо будет протестить, а вот to_utf8("Привет").c_str() - делал, не работало.
C++:
Код:
ImGui
::
GetIO
(
)
.
Fonts
->
AddFontFromFileTTF
(
"C:\\Windows\\Fonts\\trebuc.ttf"
,
16.0f
,
NULL
,
ImGui
::
GetIO
(
)
.
Fonts
->
GetGlyphRangesCyrillic
(
)
)
;
Перед init = true;
|
|
|

15.04.2018, 01:09
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Прошу помощи.
Мне нужно найти адрес EndScene из d3d9.dll сканером сигнатур, паттерн и маска известны.
Вот сам код:
C++:
[CODE]
#include
#include
#pragma warning(disable:4996)
DWORD
FindPattern
(
HMODULE hModule
,
char
*
szPattern
,
char
*
szMask
)
{
MODULEINFO mInfo
=
{
}
;
GetModuleInformation
(
GetCurrentProcess
(
)
,
hModule
,
&
mInfo
,
sizeof
(
MODULEINFO
)
)
;
DWORD dwBase
=
(
DWORD
)
mInfo
.
lpBaseOfDll
;
DWORD dwSize
=
(
DWORD
)
mInfo
.
SizeOfImage
;
DWORD dwPatternLength
=
(
DWORD
)
strlen
(
szMask
)
;
for
(
DWORD i
=
0
;
i
Объясню че делает:
1) в dllmain'e создается новый поток "Thread"
2) в потоке "Thread" я получаю модуль d3d9.dll, если его нету вывожу сообщение о его отсутствии
3) если модуль d3d9.dll успешно получен - сканером сигнатур получаю адрес EndScene и вывожу его адрес в HEX'e
Сама проблема:
Если я инжекчу мою длл в тестовое приложение win32, там где нихуя нету, то я увижу это(нормальный адрес EndScene, проблем нет)
Че я увижу если перейду по этому адресу в откладчике:
Вроде бы все заебись, продолжаем.
Закрываем тестовое приложение, открываем SA:MP, инжектим заного ту же DLL уже в самп.
Что я вижу при инжекте:
Что это значит?
Это значит то, что модуль d3d9.dll найден, но сканер сигнатур не находит нужный адрес.
Снова перейдем в откладчик, по тому адресу, который мы получили в прошлый раз:
Мы видим точно ту же картину, что и тогда.
Точно таким же образом я пытался инжектить эту длл в совершенно разные процессы, и там, где был модуль d3d9.dll - везде находило нормальный адрес.
Почему же в сампе это не работает?:thinking:
|
|
|

15.04.2018, 01:34
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
[QUOTE="_Vine_"]
Прошу помощи.
Мне нужно найти адрес EndScene из d3d9.dll сканером сигнатур, паттерн и маска известны.
Вот сам код:
C++:
[CODE]
#include
#include
#pragma warning(disable:4996)
DWORD
FindPattern
(
HMODULE hModule
,
char
*
szPattern
,
char
*
szMask
)
{
MODULEINFO mInfo
=
{
}
;
GetModuleInformation
(
GetCurrentProcess
(
)
,
hModule
,
&
mInfo
,
sizeof
(
MODULEINFO
)
)
;
DWORD dwBase
=
(
DWORD
)
mInfo
.
lpBaseOfDll
;
DWORD dwSize
=
(
DWORD
)
mInfo
.
SizeOfImage
;
DWORD dwPatternLength
=
(
DWORD
)
strlen
(
szMask
)
;
for
(
DWORD i
=
0
;
i
|
|
|

15.04.2018, 02:22
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от BlackKnigga
Убери собейт
Спасибо, помогло, но полностью это проблему не решает, почему с собейтом это не работает и как это исправить?
|
|
|

15.04.2018, 02:33
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Сообщение от _Vine_
Спасибо, помогло, но полностью это проблему не решает, почему с собейтом это не работает и как это исправить?
потому что собейт заменяет d3d9 либу и твои сигнатуры там не работают
|
|
|

15.04.2018, 03:18
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от NarutoUA
потому что собейт заменяет d3d9 либу и твои сигнатуры там не работают
Сканер сигнатур ищет сигнатуру во всем модуле, и она там есть, даже в замененном собейтовском d3d9, я кидал скрин с дебаггера, разве не так?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|