R7flexAmaYanCar
Bronz Üye
- Katılım
- 11 Nis 2021
- Mesajlar
- 37
- Beğeniler
- 7
hijack.cpp
hijack.h
işte definelar fln
C++:
#include <iostream>
#include "hijack.h"
namespace hijack {
HWND hijacked_hwnd{};
RECT window_rect{};
D2D1_SIZE_U window_size{};
bool init() {
hijacked_hwnd = FindWindowW(L"CEF-OSC-WIDGET", L"NVIDIA GeForce Overlay"); //Overlay'i FindWindowW ile hwnd olarak buluyor stringlerde lpcwstr kullanıldı.
if (!hijacked_hwnd) {
std::cout << "NVIDIA Overlay penceresi bulunamadı" << std::endl;
return false;
}
auto apply_window_styles = []() { //Overlayi hazır hale getirmek için görünümünü transparan yapıyor.
SetWindowLongW(hijacked_hwnd, -20, static_cast<LONG_PTR>((static_cast<int>(GetWindowLongW(hijacked_hwnd, -20)) | 0x20)));
MARGINS margin = { -1, -1, -1, -1 };
DwmExtendFrameIntoClientArea(hijacked_hwnd, &margin);
if (!SetLayeredWindowAttributes(hijacked_hwnd, 0x000000, 0xFF, 0x02)) {
std::cout << "[-]" << " failed to set hijacked window attributes" << std::endl;
return false;
}
SetWindowDisplayAffinity(hijacked_hwnd, WDA_EXCLUDEFROMCAPTURE); //pencerenin nerde görünceğini belirtiyor
return true;
};
if (!apply_window_styles()) {
return false;
}
ShowWindow(hijacked_hwnd, SW_SHOW); //hwnd yi gösteriyor
GetClientRect(hijacked_hwnd, &window_rect); //pencerenin koordinatlarını alıyor
window_size = D2D1::SizeU(window_rect.right - window_rect.left, window_rect.bottom - window_rect.top); //sizeını değiştiriyor
return true;
}
}
C++:
#pragma once
#include <d2d1.h>
#include <stdio.h>
#include <dwmapi.h>
#pragma comment(lib, "Dwmapi.lib")
namespace hijack {
extern HWND hijacked_hwnd;
extern RECT window_rect;
extern D2D1_SIZE_U window_size;
bool init();
}