注册机偷懒写法3、之内联Hook让程序自己弹出注册码

注册机偷懒写法1、之直接扣代码

注册机偷懒写法2、之直接调用源程序的函数

注册机偷懒写法3、内联Hook让程序自己弹出注册码

注册机偷懒写法4、调试模式下获取

找到存储注册码的存储到内存或者寄存器的代码,通过通过修改内存中程序的代码,如弹出messagebox之类

#include<Windows.h>
#include<iostream>
/*
找到存储注册码的存储到内存或者寄存器的代码
通过通过修改内存中程序的代码,如弹出messagebox之类
获取注册码

release编译关闭安全检查
*/
//获取需要调用的函数或数据新地址,源程序的加载基址与需要调用的函数或数据相对虚拟地址
int GetNewAddress(HMODULE hsrc, int sRva)
{
	return (int)hsrc + sRva;
}

void shellcode2()
{
	__asm
	{
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
	}

	__asm
	{
		//分配栈空间
		mov eax, [ebp - 0xc]
		sub esp, 0x80
		sub ebp, 0x40
		
	}
	int msgadr;
	__asm
	{
		mov msgadr,eax
	}
	
	HMODULE hKernel = NULL;
	// 1. 获取kernel32.dll的加载基址
	DWORD imageBase = 0;
	_asm
	{
		mov eax, fs: [0x30];
		mov ebx, [eax + 8];//进程基址
		mov imageBase, ebx;
		mov eax, [eax + 0xc];//Ldr
		mov eax, [eax + 0x1C];// Ldr.LoadXXX链表
		mov eax, [eax]; // 第二个节点
		mov eax, [eax]; // 第三个节点:kernel32
		mov eax, [eax + 0x8];// 加载基址
		mov hKernel, eax;
	}

	typedef void* (WINAPI* FnGetProcAddress)(HMODULE, LPCSTR);
	FnGetProcAddress pFnGetProcAddress;

	// 2. 遍历导出表, 获取GetProcAddress的地址
	IMAGE_OPTIONAL_HEADER* pOptionHeader = &((IMAGE_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值