ZhangKong ZhangKong

ZhangKong

zhangkong的博客,日常分享,不定时更新

  • 关于
  • 归档
  • 切换模式
  • 返回顶部
  • 首页
  • 逆向分析
  • ZhangKong ZhangKong

    ZhangKong

    zhangkong的博客,日常分享,不定时更新

  • 首页
  • 逆向分析
  • 关于
  • 归档

C++与x64汇编混合编程——WX逆向学习(五)

寄存器区别32位:eax ebx ecx edx esi edi esp ebp eip eflags64位:rax rbx rcx rdx rsi rdi rsp rbp r8 r9 r10 r11 r12 r13 r14 r15 rip rflags寄存器位数从32位变成64位,新增了几个寄存器函数调用约定_cdecl _stdcall _thiscall _fastcall在64位下,大部分情况下使用_fastcall返回值rax eax ax al 64 32 16 8 QWORD DWORD WORD BYTE返回值放到rax里参数传递快速调用约定:32位:使用2个寄存器64位:使用4个寄存器,如果有更多参数,则使用堆栈,且顺序固定为:rcx > rdx > r8 > r9 > 堆栈使用printf("%d %d %d",a,b,c)四个参数演示:32位: push c push b push a push "%d %d %d" call printf add esp,16 64位: sub rsp,28h mov r9,c mo

逆向分析 · 2024-01-15
ZhangKong

窗口被遮住和最小化的截图——WX逆向学习(四)

微信截图当程序被遮挡不在最上层,或者程序最小化,也能截取到窗口图片原理流程获取设备上下文句柄:GetWindowDC-- > ReleaseDC获取指定窗口边界和尺寸:GetWindowRect计算窗口大小(注意C#中的Rectangle与C++中RECT区别)创建一个设备上下文相关的位图:CreateCompatibleBitmap->DeleteObject创建一个内存上下文兼容的句柄:CreateCompatibleDC->DeleteDC选择一个设备上下文对象:SelectObject拷贝窗口到设备上下文:PrintWindow清理垃圾代码定义: [DllImport("Gdi32.dll")] public static extern int DeleteDC(IntPtr hdc); [DllImport("Gdi32.dll")] public static extern int DeleteObject(IntPtr ho); [D

逆向分析 · 2024-01-11
ZhangKong

使用C#读取其他进程内存中的数据——WX逆向学习(三)

1.找到微信进程和基址//微信进程 Process WxProcess = null; //WeChatWin.dll基址 IntPtr WeChatWinBaseAddress = IntPtr.Zero; //微信版本 String WeChatVersion = ""; Process[] processes = Process.GetProcesses(); foreach (Process process in processes) { if (process.ProcessName == "WeChat") { WxProcess = process; this.textBox1.AppendText("微信已找到!" + Environment.NewLine); this.textBox1.AppendText("微信句柄:\t" + "0x" + ((int)(process.Handle)).ToStri

逆向分析 · 2024-01-11
ZhangKong

确定数据存放在内存中的地址——WX逆向学习(二)

课程有点老,通过搜索发现一个新的开源反汇编调试器x64dbg,支持32位/64位调试,界面与OllyDbg相似,github上的star数量很多,插件丰富https://x64dbg.com/1.打开CE,通过微信昵称查找内存地址nickname WeChatWin.dll + 3DFD5D8复制出xml信息:<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>7</ID> <Description>"nickname"</Description> <LastState RealAddress="7FF9D1F5D5D8"/> <ShowAsSigned>0</ShowAsSigned> &

逆向分析 · 2024-01-10
ZhangKong

软件安装和确定模块的基址——WX逆向学习(一)

微信版本:3.9.8.25下载OD:https://www.ollydbg.de/下载CE:https://cheatengine.org/1.通过OD附加微信进程OD > File > Attach ps:1.使用的微信版本是64位,需要下载64位OD,不然找不到进程2.如果进程隐藏找不到,通过IceSword或其他任务管理功能软件找到进程PId,使用命令进行附加ollydbg.exe -p pid 2.寻找微信执行模块OD > View > Executable modules 通过Path排序 找到WeChatWin.dll的BaseWeChatWin.dll 7FF9CE160000 3.使用CE打开微信进程CE > File > Open Process > Applications 寻找微信昵称,Value Type选择String,拖到最后找到WeChatWin.dll的位置WeChatWin.dll+3DFD5D8 附件:微信3.9.8.25

逆向分析 · 2024-01-10
ZhangKong
  • 1
  • 2
  • ›
ZhangKong

ZhangKong

努力搞钱,正在搬砖

  • 程序员
  • 自媒体
  • 公路车爱好者
热门文章
  • 确定数据存放在内存中的地址——WX逆向学习(二)
  • C++与x64汇编混合编程——WX逆向学习(五)
  • 软件安装和确定模块的基址——WX逆向学习(一)
  • 使用C#读取其他进程内存中的数据——WX逆向学习(三)
  • 窗口被遮住和最小化的截图——WX逆向学习(四)
最新评论
  • Henryjep: LMC Middle School https://lmc896...
  • abumuwilibe: Get prompt alleviation from gout...
  • aqeguhopoma: Xplore the benefits of [URL=http...
  • Haroldviore: Выезд врача-нарколога из клиники...
  • iyopumipbana: The necessity of consulting a me...
  • awcovahiregie: Explore the latest advancements ...
  • oifobopocizat: Just discovered your remedy for ...
热门标签
  • wx逆向
  • 学习笔记
关于本站
  • xtaypwaf@gmail.com
  • 鄂ICP备13002031号
2020 - 2025 ZhangKong. All Rights Reserved.