Delphi 逆向工程
delphi 逆向技术
小蚂蚁_CrkRes
Where there is a will, there is a way
展开
-
windows键盘勾子的使用
SetWindowsHookEx 原型如下 HHOOKSetWindowsHookEx( int idHook, // 安装勾子的类型 键盘勾子=WH_KEYBOARD HOOKPROC lpfn, // KeyboardProc回调函数的地址 最重要的参数就是这个了 HINSTANCE hMod, // 函有回调函数动态链接库的句柄 一原创 2016-08-15 20:39:42 · 3655 阅读 · 0 评论 -
CALL 调用之DLL实现
我们找到了F1-F8 功能CALL,并做了测试,发现287版武林外传,,已经封掉了WriteProcessMemory这个API函数所以写入代码再远程调用的方法已经不好用了,今天我们将介绍一种新的方法,来实现我们的代码---DLL动态链接库。 在这里我我对大纲进行了一下调整: A、 把进阶篇的3-5 CALL调用之DLL实现 提前 1、DLL动态原创 2016-08-14 20:42:20 · 2199 阅读 · 0 评论 -
找到技能数组
1、更新打坐CALL地址;新地址$00452E20 2、找出F1-F8技能 数组+偏移 a、先用CE找到数组相对基址: b、回溯找到 基址+偏移 c、推导出公式 为什么要找这个数组? 因为在按F1-F8调用技能时,会访问这个数组里存放的技能对象(物品对象),这将是找到(物品使用,技能,普攻)之类功能CALL的突破口。原创 2016-08-14 17:23:26 · 746 阅读 · 0 评论 -
远程注入代码,远程调用Call
1、远程注入代码,调用打坐CALL HANDLE CreateRemoteThread( HANDLE hProcess, //在指定的进程句柄里创建线程 LPSECURITY_ATTRIBUTES lpThreadAttributes, //安全结构指针 nil DWORD dwStackSize, // 初始创建线程堆栈大小0 LPT原创 2016-08-14 12:17:45 · 8698 阅读 · 0 评论 -
读取角色的血值
分析出值基址+偏移;[[[[[95E800+1c]+24]+918]+14]+1c ] //角色对象基址 +3C //当前坐标 x,h,y +7C //当前坐标 X,h,y +25c //当前血值 +260 //当前魔力值 +274 //血值上限 +278 //魔力值上限 +28c //防御 //GameCaption='Element Client原创 2016-08-14 11:56:53 · 456 阅读 · 0 评论 -
人物角色对象的一级基址
上一节课我们自己写了段代码,了解了基址+偏移 内存读写方式。在这一节课我们将一起来找《武林外传》这个游戏的,人物角色对象的一级基址; HW :硬件写入 HW 04F3303C //写入 内存地址时 断下来 HD 04F3303C //删除硬件断点 esi=04F32DE0 找ESI值的来源 mov esi,ecx; 相当于高级语言的 esi:=ecx原创 2016-08-13 21:15:39 · 2364 阅读 · 0 评论 -
OllyDbg简价
OllyDbg简价: OD窗口 分为4部分 1、反汇编窗口 2、寄存器窗口 3、数据窗口 4、堆栈窗口 Alt+B:断点窗口 F7: 单步步入 F8:单步步过 ctrl+f9: 执行到返回 数据窗口 DU 地址 使用 UNICODE 格式转储 (统一的字符编码标准,采用双字节对字符进行编码) DC 地址 使用 ASCII原创 2016-08-13 17:12:02 · 472 阅读 · 0 评论 -
OD IDA 找到延迟代码,编码实现加速
1.准备工具 ODOllyDbg吾爱专版:http://download.csdn.net/detail/zang141588761/9602504 IDA Pro v6.6英文版(稳定):http://download.csdn.net/detail/zang141588761/96025082.找到加速地址Const SleepBase=$0041d6b原创 2016-08-13 16:12:13 · 1132 阅读 · 0 评论 -
封装函数
打开GameProc 单元 把 游戏开局 读坐位号 读棋盘数组 交换点1与点2 全部集成封装到相应的函数里 uses windows,messages,sysutils; ///////////////////////////////////type QP_Array=Array[1..8,1..25] of byte; twoxy=array[1.原创 2016-08-11 20:56:32 · 1709 阅读 · 0 评论 -
交换棋盘两点
用CE正确的找出了 坐位号基址,棋盘数组基址 游戏数据的分析部分基本 结束了,现在我们开始逻辑部分编程 棋子间距384/8=48 左上角 棋格 起始坐标:272,99 来更新棋盘数据 到变量数组 在这里我们定义一个全局变量 ChessData:array[1..8,1..25] of byte; //用于存放更新的棋盘数据原创 2016-08-11 20:08:54 · 1095 阅读 · 0 评论 -
学会用API函数读出内存数据
这一课 将用CE来找出对对碰游戏 坐位号基址,棋盘数组基址并把它读出来教学目的:学会用API函数读出内存数据 1、预备知识 4种数据类型 字节 Byte=00-FF 0-255 8bit 字 WORD =2Byte= $0000至 $FFFF 0-65535 16bit原创 2016-08-10 20:57:32 · 9745 阅读 · 0 评论 -
模拟鼠标按下
预备知识: 2个API函数 FindWindow,sendmessage工具使用spy++spy++ 是微软 Visual Studio 编译器自带的一款工具。它可以显示系统对象(包括进程、线程和窗口)之间关系的图形树,搜索指定的窗口、线程、进程或消息, 查看选定的窗口、线程、进程或消息的属性等等。因此,在 spy++ 的帮助下,我们进行程序调试将容易得多。 下原创 2016-08-10 19:33:55 · 2184 阅读 · 0 评论 -
用CE来找出对对碰游戏 坐位号基址,棋盘数组基址 并把它读出来
用CE来找出对对碰游戏 坐位号基址,棋盘数组基址 并把它读出来 1、预备知识 4种数据类型 字节 Byte=00-FF 0-255 8bit 字 WORD =2Byte= $0000至 $FFFF 0-65535 16bit 双字 DWORD =4Byte= $00原创 2016-08-10 21:35:48 · 3258 阅读 · 0 评论 -
键盘hook,dll实现挂载到其他程序
安装函数:procedure TfrmTest.btnInstallClick(Sender: TObject);typeTInstallFunc=function (appName:string):Boolean;stdcall;varstrPro:string;pg_h : THandle;pg_id: DWORD;InstallFunc:TInstallFun原创 2016-08-18 21:46:36 · 1230 阅读 · 0 评论 -
OllyDbg完全教程
OllyDbg完全教程目录第一章概述..................................................................1第二章组件..................................................................5一、一般原理[General prnciples]......原创 2016-08-15 09:20:04 · 6876 阅读 · 0 评论