Background
Break News
How to add local font to Tailwind Css and NextJS? - Tutorial Design Pattern? - Blockchain Technology, How to create own Bitcoin virtual currency - Zustand mordern management state - Design Pattern - Flyweight Pattern? - Docker Full training Topic

[Tips] DLL injection and DLL injection example - "dynamic link library injection" (2/2)

Wednesday, 21 October 2015
|
Read: Completed in minutes

[Tips] DLL injection and DLL injection example - "dynamic link library injection" (2/2)

View here for understand "dynamic link library injection" injection and example






- Today I will show you another way using DLL Injection with parameters
- Change NewWndProc function.


"DLL injection" and "DLL injection example"  Webzone Tech Tips Zidane




Data Structure

typedef struct tag_locksomeoneuseskill
{ 
 int iIndex;   // skill ID
 int iPos;   // vị trí monster trong mảng NPC
}Locksomeoneuseskill; // struct tham số cho function LockSomeOneUseSkill 


Source code


// dllmain.cpp : Defines the entry point for the DLL application.
/* ****************************************
 * Author: Zidane (huuvi168@gmail.com)
 * Last modified: 2015-06-08
 * ****************************************/

/************************************************************************
VịLH - NewWndProc - 23/05/2013
 Hàm nhận các sự kiện bên chương trình chính gửi qua
params:
 + HWND: HWnd cửa sổ đang chọn
 + UINT: Message của chương trình
 + WPARAM: Tham số wparam
 + LPARAM: Tham số lparam
return: 
 
*************************************************************************/

LRESULT CALLBACK NewWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ 
      switch(uMsg) 
      {
    case WM_COPYDATA: // get data from shared memory area
  COPYDATASTRUCT* pcds = (COPYDATASTRUCT *)lParam; 
  if (pcds->dwData == DATA_LOCKSOMEONEUSESKILL)
  {           
       iIdSkill = ((Locksomeoneuseskill *)(pcds->lpData))->iIndex;
       iPosition = ((Locksomeoneuseskill *)(pcds->lpData))->iPos;
  }
  break; 
      }


     if (!hWnd)
  return CallWindowProc(OldWndProc, hWnd, uMsg, wParam, lParam);
     DWORD pid;
     GetWindowThreadProcessId(hWnd, &pid);  
 

      // Ứng dụng gửi rất nhiều message nhưng chỉ xử lý message 
      // WM_HOOK_WRITE thôi
      if (uMsg == WM_HOOK_WRITE)
      {   
    switch (wParam)
    {     
  case WPARAM_LOCKSOMEONEUSESKILL:
      if (iPosition > 0 && iIdSkill > 0)
   LockSomeOneUseSkill(pid, iPosition, iIdSkill);
      break;   
  }
           } 

           return CallWindowProc(OldWndProc, hWnd, uMsg, wParam, lParam);
      }
}



Main function



COPYDATASTRUCT MyCDS;
Locksomeoneuseskill locksomeoneStruct;
locksomeoneStruct.iIndex = 128;
locksomeoneStruct.iPos = 10488;
  
MyCDS.dwData = DATA_LOCKSOMEONEUSESKILL;
MyCDS.cbData = sizeof(locksomeoneStruct);
MyCDS.lpData = &locksomeoneStruct;

// copy data locksomeoneuseskill
::SendMessage(m_hCurrentWnd, WM_COPYDATA, 0, reinterpret_cast<lparam>(&MyCDS));  

// using function looksomeoneusekill
::SendMessage(m_hCurrentWnd, WM_HOOK_WRITE, WPARAM_LOCKSOMEONEUSESKILL, 1); 

Description

WM_COPYDATA constant will be reference to below source


case WM_COPYDATA: // get data from shared memory area
   COPYDATASTRUCT* pcds = (COPYDATASTRUCT *)lParam; 
   if (pcds->dwData == DATA_LOCKSOMEONEUSESKILL)
   {           
 iIdSkill = ((Locksomeoneuseskill *)(pcds->lpData))->iIndex;
 iPosition = ((Locksomeoneuseskill *)(pcds->lpData))->iPos;
   } 



View more: https://learn-tech-tips.blogspot.com/2015/08/dll-injection-exmaple.html

Are you interested in topic DLL injection and DLL injection example from Webzone Tech Tips? If you have any thoughts or questions, please share them in the comment section below. I would love to hear from you and chat about it

Webzone Tech Tips Zidane


🙇🏼🙇🏼 Your Feedback Is Valuable and Helpful to Us - Webzone, all things Tech Tips web development Zidane
Popular Webzone Tech Tips topic maybe you will be like it - by Webzone Tech Tips - Zidane
As a student, I found Blogspot very useful when I joined in 2014. I have been a developer for years . To give back and share what I learned, I started Webzone, a blog with tech tips. You can also search for tech tips zidane on Google and find my helpful posts. Love you all,

I am glad you visited my blog. I hope you find it useful for learning tech tips and webzone tricks. If you have any technical issues, feel free to browse my posts and see if they can help you solve them. You can also leave a comment or contact me if you need more assistance. Here is my blog address: https://learn-tech-tips.blogspot.com.

My blog where I share my passion for web development, webzone design, and tech tips. You will find tutorials on how to build websites from scratch, using hot trends frameworks like nestjs, nextjs, cakephp, devops, docker, and more. You will also learn how to fix common bugs on development, like a mini stackoverflow. Plus, you will discover how to easily learn programming languages such as PHP (CAKEPHP, LARAVEL), C#, C++, Web(HTML, CSS, javascript), and other useful things like Office (Excel, Photoshop). I hope you enjoy my blog and find it helpful for your projects. :)

Thanks and Best Regards!
Follow me on Tiktok @learntechtips and send me a direct message. I will be happy to chat with you.
Webzone - Zidane (huuvi168@gmail.com)
I'm developer, I like code, I like to learn new technology and want to be friend with people for learn each other
I'm a developer who loves coding, learning new technologies, and making friends with people who share the same passion. I have been a full stack developer since 2015, with more than years of experience in web development.
Copyright @2022(November) Version 1.0.0 - By Webzone, all things Tech Tips for Web Development Zidane
https://learn-tech-tips.blogspot.com