win10 x64DLL模块线程函数地址定位

x64DLL模块线程函数地址定位

环境

1:win10最新版
2:x64Dbg

DLL代码—3环

#define _CRT_SECURE_NO_WARNINGS
#include "pch.h"
#include <iostream>
#include "windows.h"


DWORD WINAPI ThreadProc(LPVOID A)
{

    char zifu[] = "jinrule";
    for (;;)
    {
        Sleep(6000);
        std::cout<< zifu<<std::endl;
    }
  
    return TRUE;
}

BOOL APIENTRY DllMain(HMODULE hModule,
    DWORD  ul_reason_for_call,
    LPVOID lpReserved
)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
      HANDLE hThread = ::CreateThread(NULL , NULL, ThreadProc, NULL, 0,0);

        break;
    }
    return TRUE;
}


定位过程

这个是我们需要定位的线程函数地址:DWORD WINAPI ThreadProc(LPVOID A)
1:用x64Dbg打开dll并执行到dll模块的入口地址,如图:
在这里插入图片描述
2:在x64Dbg在CreateThread函数下断点,如图:
在这里插入图片描述
3:找到第三个CreateThread参数,就是创建线程的函数入口点,如图:
在这里插入图片描述
根据x64的函数调用约定:RCX—RDX—R8—R9; R8为第三个参数;
那么线程函数地址就是:0000000180001630

总结

就是对windowsAPI进行下断点,在根据API的传递参数来确定线程要执行的函数地址。
不懂可以私信我或在评论区留言,(手留余香)对您有用请随手点赞。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值