内存注册机原理
来源:互联网 发布:mac office2011卸载 编辑:程序博客网 时间:2024/04/29 22:55
【文章标题】: 内存注册机原理
【文章作者】: 125096
【软件名称】: Memory.exe
【加壳方式】: 无
【编写语言】: vs2008
【使用工具】: vs2008,OllyDbg
【操作平台】: 盗版WIN7操作系统
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
---------------------------------------------------------------------------------------------------------------------------------------------------------
【详细过程】
由于工作需要,需要实现这个功能,读取A进程执行到00401000地址后取eax的值
群里和好友上问了许多人,这个貌似类似内存注册机的东西可以实现,以前也是一直有用过,但是不知道是咋实现的。反正就是找到地址,比如00401000,然后是寄存器eax或者ebx之类的,点击注册按钮,注册码就会自动出现。看起来很神奇的样子。
在网上找到一个内存注册机的软件,刚好里面有带例子,ollydbg反汇编了下,是asm编写的。看起来就方便多了。基本都是调用api的无编译器产生的垃圾信息。基本实现原理是这样的过程QQ群:193541151
1.暂停状态创建A进程
2.读取A进程00401000的2个字节,修改为0xFEEB,也就是jmp到自身地址
3.激活进程执行状态
4.获取A进程的执行状态
5.如果A进程执行到00401000处,就读取eax的值,然后还原修改的地方。使A进程能正常执行
下面是vs2008下编译通过的代码
#include <windows.h> #include <tchar.h> TCHAR strname[]=TEXT("a123.exe"); //程序名称 DWORD address=0x4113fd; //读取地址 WORD ebfe=0xFEEB; //程序暂停在此 int main (void) { //创建进程 STARTUPINFOA psiStartInfo={0}; //STARTUPINFOW //UNICODE PROCESS_INFORMATION pProcInfo={0}; CreateProcess(strname,NULL,NULL,NULL,NULL,CREATE_SUSPENDED,NULL,NULL,&psiStartInfo,&pProcInfo); //进程创建成功 if (pProcInfo.hProcess) { TCHAR strbuff[32]={0};LPDWORD lpNumberOfBytesRead=NULL;WORD source=0; //读取地址下的值保存 if (!ReadProcessMemory(pProcInfo.hProcess,(LPVOID)address,&source,sizeof(source),lpNumberOfBytesRead))return false; //写入字节EBFE if (WriteProcessMemory(pProcInfo.hProcess,(LPVOID)address,&ebfe,2,NULL)) { //激活线程 ResumeThread(pProcInfo.hThread); CONTEXT context={0}; context.ContextFlags=CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS; while (true) { //获取进程执行状态 GetThreadContext(pProcInfo.hThread,&context); if (context.Eip==address) { //读内存 if (ReadProcessMemory(pProcInfo.hProcess,(LPVOID)context.Eax,strbuff,sizeof(strbuff),lpNumberOfBytesRead)) { MessageBox(NULL,strbuff,NULL,MB_OK); WriteProcessMemory(pProcInfo.hProcess,(LPVOID)address,&source,2,NULL);//还原A进程代码 } } } } } return 0; }
- 内存注册机原理
- 内存注册机的工作原理及masm源码
- 内存注册机注意事项
- 注册机原理分析【未完】
- 注册机使用原理及实现
- 机器人破解注册原理
- Windows热键注册原理
- 注册内存漏洞
- 内存原理
- 内存原理
- 注册机破解法的原理和应对方法
- 注册机破解法的原理以及应对方法
- 注册机破解法的原理和应对方法
- 破解学习笔记-----获取按钮事件地址---追出注册吗----编写内存注册机
- ehcache jmx 注册引起内存溢出宕机
- UltraEdit 注册机注册
- dubbo组成原理-zookeeper注册原理
- 游戏内存修改原理
- Xcode 6 技巧: 矢量图像,代码片段以及其他!!!
- 20150521-Allegro出图1-钻孔文件
- Jsp概述
- 东南大学CTF之签到题
- HashSet与HashMap实现
- 内存注册机原理
- FP-growth算法
- APK 解包及签名
- YRADScrollView简介
- js模块化实例!!!!!
- 随机游走模型(Random Surfer Model)
- 当在浏览器地址栏输入一个网址的时候,究竟发生了什么?
- 深入浅出 Java Concurrency (6): 锁机制 part 1
- __cdecl、__stdcall、__fastcall和__thiscall函数调用的整理