Т.е. есть ли решение получить две сети на ПК, без установки второй сетевой карты или поднятия VPN на одной из этих сетей?
if (Data.is_open()) {
std::cout << "Ошибка. У вас нет аккаунта" << std::endl;
return;
}
while(true)
) и или выходить из программы через exit(), или возвращать из Login, что надо завершаться и тогда в Menu делать break. #include <Windows.h>
#include <winternl.h>
#include <cstdio>
using namespace std;
void get_by_peb()
{
// Получаем указатель на PEB
// небольшой хак без какого либо импорта, чисто через asm получаем указататель на PEB структуру
PPEB peb = NULL;
#ifdef _WIN64
peb = (PPEB)__readgsqword(0x60);
#else
peb = (PPEB)__readfsdword(0x30);
#endif
printf("PEB addr: [%p]\n", peb);
PPEB_LDR_DATA ldr = peb->Ldr;
PLIST_ENTRY startPos = &ldr->InMemoryOrderModuleList;
PLIST_ENTRY currPos = startPos->Flink;
int moduleCount = 0;
while (currPos != startPos) {
moduleCount++;
currPos = currPos->Flink;
}
printf("Modules count: [%d]\n", moduleCount);
currPos = currPos->Flink;
PLDR_DATA_TABLE_ENTRY pLdrEntry;
for (int i = 0; i < moduleCount; ++i) {
pLdrEntry = CONTAINING_RECORD(
currPos,
LDR_DATA_TABLE_ENTRY,
InMemoryOrderLinks);
printf(
"[%ls], BASE-ADDR: [0x%p], Entry-Point:[0x%p]\n",
pLdrEntry->FullDllName.Buffer,
pLdrEntry->DllBase,
pLdrEntry->Reserved3[0]
);
currPos = currPos->Flink;
}
}
int main(void)
{
// Проверяем адрес
HMODULE dll_1 = GetModuleHandleA("KERNEL32.dll");
printf("--------------------\n");
printf("KERNEL32.dll :: [%p]\n", dll_1);
printf("main() :: [%p]\n", main);
printf("--------------------\n");
// Решение:
printf("--------------------\n");
get_by_peb();
printf("--------------------\n");
return 0;
}
Как получить то же самое в С++?
uint8_t foo[] = {7, 7};
int i = foo[0] + 256 * foo[1];
В js я могу получить это так
…Int8Array
…
почему программа завершилась? Вмешалась ОС? Но если так, то почему?
Почему я не могу поменять значение самого указателя (ведь указатель - это всего лишь ссылка на адрес памяти, а не на значение).
a = (int *)10;
могу ли я указателю дать ссылку на конкретную ячейку в памяти?
получаю ошибку, ведь вряд ли адрес памяти у указателя хранится в виде 16-ричного целочисленного литерала.
int *a = (int *)0x0061FF18;
application.exe > std.log 2>err