- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
template <typename function_type, typename vector_type>
function_type read_memory(HANDLE hProcess, function_type base_address, std::vector< vector_type >&& offsets) {
function_type tmp = base_address;
for (function_type i : **reinterpret_cast< vector_type** >( &offsets )) {
ReadProcessMemory(hProcess, reinterpret_cast< PBYTE* >( tmp + i ), &tmp, sizeof(function_type), nullptr);
}
return tmp;
}
int main() {
std::vector< DWORD > offset = {
0x10,
0x14,
0x158
};
auto buffer = read_memory< DWORD, DWORD >(hProcess, base_address, std::move(offset));
}
bog 10.02.2020 02:07 # 0
⅞ как минимум, и то при условии, что hProcess в спячку отправили предварительно
bormand 10.02.2020 07:21 # 0
j123123 10.02.2020 09:40 # +1
Чем их не устроили int8 int16 int32 и проч?
bormand 10.02.2020 09:45 # 0
j123123 10.02.2020 09:49 # +1
bormand 10.02.2020 09:55 # 0
bormand 10.02.2020 09:58 # +2
Fike 10.02.2020 10:34 # +2
когда полез гуглить, первым же делом вывалилось конечно "не нужен вам байт у вас есть чар ты придумываешь ненужное из тебя не выйдет сишник"
хуй знает как эти пчелы собирались с какими-нибудь сетевыми октетами работать, конечно
bormand 10.02.2020 10:45 # 0
Пиздят. Это они нубов учат юзать char, а сами тайком тайпдефят. Вон в ядре есть u8, да и в половине библиотек какие-нибудь uint8 вместо чара юзают.
З.Ы. Кстати в кресты таки завезли byte. Для настоящих битоёбов, над ним даже арифметика не работает, только побитовые операции.
HoBorogHuu_nemyx 10.02.2020 11:19 # +2
bormand 10.02.2020 11:40 # +1
1024-- 10.02.2020 19:09 # 0
На сишку нельзя полагаться. Либо код будет с проверками, которые в ближайшие годы не оттестируешь (а что, если int 128 бит), либо вообще без проверок, и тогда не скомпилируется/не заработает на машинах с int128 или charbit9.
Полагаться вообще ни на что нельзя, нужен мешок тайпдефов.
Максимум, что можно выжать из кода в плане универсальности -
guest8 10.02.2020 19:11 # −999
gostinho 10.02.2020 19:15 # 0
guest8 10.02.2020 19:19 # −999
gostinho 10.02.2020 19:21 # 0
guest8 10.02.2020 19:22 # −999
gostinho 10.02.2020 19:22 # 0
guest8 10.02.2020 19:23 # −999
gostinho 10.02.2020 19:24 # 0
Я же просил реальный пример.
guest8 10.02.2020 19:40 # −999
gostinho 10.02.2020 23:27 # +1
guest8 11.02.2020 02:12 # −999
gost 11.02.2020 03:01 # +1
§ 6.8.1/4
guest8 11.02.2020 03:13 # −999
HoBorogHuu_nemyx 11.02.2020 10:19 # 0
short int же гарантирует, что размер данных не меньше 16 бит. Т. е. 16 бит либо ближайший оптимальный для данной архитектуры размер.
gost 11.02.2020 10:25 # 0
HoBorogHuu_nemyx 11.02.2020 10:17 # 0
gost 11.02.2020 10:23 # 0
HoBorogHuu_nemyx 10.02.2020 20:24 # 0
В компиляторах для DSP, GPU и мейнфреймов даже char может быть не 8-битным.
1024-- 10.02.2020 19:19 # 0
Точно. Это же long 8 байт под луниксом.
Fike 10.02.2020 22:10 # 0
guest8 10.02.2020 22:12 # −999
guest8 10.02.2020 22:13 # −999
bormand 10.02.2020 10:06 # +1
Steve_Brown 10.02.2020 12:09 # 0
guest8 10.02.2020 15:04 # −999
bormand 10.02.2020 10:11 # +1
guest8 10.02.2020 15:05 # −999