Loading... 软件 vs2022 od ce # OD使用教程 1. OD Attach WeChat进程,然后运行 2. t 快捷键用于线程暂停激活,右键进行操作 3. c 快捷键用于返回主界面 4. b 快捷键查看所有断点 5. dd 查看内存数据 dc 查看中文数据 du unicode编码 6. F2 快捷键加断点 7. Ctrl + g 搜索 8. F8 步进 # CE使用教程 1. 附加WeChat进程 2. Memory View中 Ctrl + g 搜索地址 # 汇编基础指令 1. E8 call 2. E9 jmp 3. 指令 [要跳转的地址 - hook的地址 - 5] # 注入器实现 (LoadLibraryAddress) 1. 通过进程快照获取进程PID CreateToolhelp32Snapshot() Process32Next() OpenProcess() 2. 申请内存 DllAddress = VirtualAllocEx() 3. 写入注入DLL路径 WriteProcessMemory() 4. 获取Kernel32基址 Kernem32_Address = GetModuleHandle("kernel32.dll") 5. 获取LoadLibrary函数的地址 LoadLibraryAddress = GetProcAddress(Kernem32_Address, "LoadLibaray(A or W)") 6. 在别人进程执行加载的DLL中的函数 CreateRemoteThread(LoadLibraryAddress , DllAddress) # 卸载器实现 (FreeLibrary) 1. # DLL编写 1. 获取基址 WinAddress = LoadLibrary("WeChatWin.dll") 2. 根据偏移操作 读 地址类型\*(\* data) 写 WriteProcessMemory() 3. WriteProcessMemory() 4. ReadProcessMemory() # 微信多开 (互斥体 CreateMutex(A or W,WeChat use W)) 1. 左上窗口搜索 CreateMutexW,右下角查看三个参数获取name参数 2. 修改name为不同即可 # hook获取微信二维码 (获取二维码图片base64,返回原执行流程) 1. 查找图片base64 or 1. 根据二维码还原为url格式 2. 组成为 url + 后缀,所以不能全部搜索,只搜索后缀即可 3. 通过扫码取消登录的方式获取变更为新的后缀的地址,然后下断点获取基址 4. 找到那个地址存放后缀,可能在断点上方一部分 5. 填充要替换的指令 6. 备份寄存器内容(asm 把寄存器中的值移出来) 7. 执行要做的函数 8. 回复寄存器内容(asm 把值放回寄存器) 9. jmp到原来call之后的位置 # 发送文本消息 1. 从wxid或者发送内容找对应call位置 2. 根据id打内存访问断点,找到入口函数 3. # 接收消息 1. 通过接收消息在CE中查找 2. 查找未处理的数据,比较完整 3. 下内存写入断点,在堆栈区附近找对应字符串 微信版本 3.6.0.18 基址 WeChatWin.dll 偏移 222EBB4 用户名 222F020 wxid 指针类型 or wxid 222EE94 头像 指针类型 222EBE8 电话号码 222F058 登录设备 22580A0 登录二维码 指针类型 最后修改:2022 年 06 月 05 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 如果觉得我的文章对你有用,请随意赞赏
2 条评论
od和ce都是什么软件?
可以去52破解看下,常用的反汇编工具