めいくりぷとのブログ

技術的なことやゲームのことやら・・・

めいぷるぷるるるる

youtu.beタブのcloseボタンのuiなんとかセネバ... struct AutoLogin { ... }; struct CMappedFile { unsigned long request; unsigned long arg[10]; AutoLogin login; ... }; 共有メモリの構造体がこんな感じなので、 [client] -> [server] は、request, ar…

めいぷる 更新

youtu.be・サーバー(メイプル)の生存チェック ・その他もろもろ後はgui側の切り替えと、メイプルクラッシュ時に再起動でござる~

めいぷる

youtu.be@@接続切り替える度に元の接続は切断(メモリ開放)してるんだけど、1回接続したらそのまま保持した方がええんかの? クライアント (nullp system) |-サーバー (メイプル1) |-サーバー (メイプル2) |-サーバー (メイプル3) ...って感じなんだけど、最…

AVA 更新

gyazo.com何やら変なクラスが追加されましたの... まあ avaGame/avaRules/Engine/AVANET 辺りしか触れないからどうでもいいんですけど...それと今まではsplash画像はファイルチェックの対象外でフォルダごと消すだけで良かったけど、アプデ入ってから毎回全…

ウィンドウフレーム以外からでもウィンドウを移動出来るようにする。

前回同じような記事を書いたのですが、継承するクラスによっては移動出来ない物もあったみたいですので、今回は nativeEvent関数をオーバーライドして実装してみました。 bool CMainWindow::nativeEvent(const QByteArray &eventType, void *message, long *…

別プロセスのAPIのアドレスを取得する。

C++

https://pastebin.com/QR1TUW7U// GetProcessModuleInfo ReadProcessMemoryで対象プロセスのPEBを読み取る -> モジュールの一覧取得 -> モジュールのベースアドレスの取得// GetProcAddressEx 取得したモジュールのPEヘッダーからエクスポート関数のアドレス…

QXmlStreamReader/Writerでxmlにウィジェットのステータスを保存する

サンプルコード CConfigManager.hpp #pragma once #include <qwidget.h> #include <map> class CConfigManager { public: CConfigManager(); ~CConfigManager(); public: // void WriteXmlElement(__in QXmlStreamWriter &writer); void ReadFromXml(__in QXmlStreamReader &</map></qwidget.h>…

プロテクターに検出されないD3D・OpenGLフックの考察

FPS等でWallhackやD3Dフックをベースにしたチートを行うにも殆どのゲームでXignCodeやHackShield, NGS(BlackChiper)などのプロテクターが導入されているため、チート検出されてしまいます。ですが、海外フォーラム等に落ちている物などで、検出されずに使え…

WDDM Hook (2)

Direct3D DDIは、OpenGL ICDとは違って、グラフィックドライバ自体にテーブルは無くd3dx.dllにドライバのテーブルがあるみたいですね...(ICD同様にグラフィックドライバ自体にテーブルが用意されているものだと勘違いしておりました。) まずDDIの関数テーブ…

ウィンドウフレームを消して、ウィンドウを移動出来るようにする。

eventFilter(QObject* object, QEvent* event); をオーバーライドし、 event->type() から各マウスの状態から制御します。以下ソースコードです。 CMainWindow::CMainWindow(__in QWidget *parent) : QMainWindow(parent) { .... this->installEventFilter(t…

NIC Mac Address Authentication

// CAuthentication.hpp #pragma once #include <vector> class CAuthentication { public: CAuthentication(); ~CAuthentication(); public: BOOL IsUserAllowed(); void SetWhiteList(); public: static CAuthentication *GetInstance() { static CAuthentication </vector>…

Wrapper opengl32.dll

// opengl32.dll export function namespace opengl32 { pfnglAlphaFunc _glAlphaFunc; pfnglBegin _glBegin; pfnglBitmap _glBitmap; pfnglBlendFunc _glBlendFunc; pfnglClear _glClear; .... .... } namespace opengl32 { typedef void (WINAPI * pfnglAl…

ハードウェアID(PC固有)情報を調べる

Anti-Cheatプロテクターにも HWID BAN というものがありますよね。 今回は、それらを紹介していきたいと思います。 マイナーな手法として、以下のように、NIC(ネットワークインターフェースカード)のGUIDを列挙し、それに対応したMac-Addressを取得するとい…

API Check

こちらを参考にしてAPI Checkを作ってみました。 mhllchan.hatenablog.com www.youtube.com比較元のDLL(copy_ntdll等)をどのように持ってくるかで強度さが変わってくるでしょう。

ラッパーAPI _GetProcAddress

C++

GetProcAddressのラッパーAPI書いてみました。 第二引数に序数を指定した場合は対応出来ていません。 #define EXPORT_DIRECTORY OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT] FARPROC WINAPI _GetProcAddress( _In_ HMODULE hModule, _In_ L…

PEBを用いたモジュール隠蔽 + α

C++

PEBを理解するために適当に書いたコードです。 /////////////////////////////////////////////////////////// // peb.hpp /////////////////////////////////////////////////////////// #pragma once #ifndef Padding #define Padding(x) struct { unsigne…

WDDM Hook

Windows Display Driver Model (WDDM) hook について適当に書きます。前記事でOpenGL ICD hookについて書きましたが、ほとんど同じです。 今回も大雑把に説明します。 まずは、各ディスプレイドライバのエクスポート関数 "OpenAdapter" をフックしします。 N…

OpenGL ICD Hook

OpenGL ICD hook (グラフィックドライバフック)が完成したので手法を大雑把に説明します。まずは、これらのAPIからICDを取得します。 GDI32.D3DKMTOpenAdapterFromHdc GDI32.D3DKMTQueryAdapterInfo GDI32.D3DKMTCloseAdapter BOOL CDriverManager::Init() {…

シンタックス・ハイライトテスト

ソースコードを色付けして記述する(シンタックス・ハイライト) - はてなダイアリーのヘルプ class hoge { public: hoge(); } int main() { hoge *p = new hoge(); return 0; ]

ブログの移転

FC2からはてなブログに移転しました。