上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页
摘要: 这边文章是对于IDA Pro的使用小结。想要学习IDA使用的请看这里。 我这里只是小小的个人的总结。不是作为教程来写的。1. Begin 这里有这样一段代码: 我们用IDA来进行反汇编的练习。 发现IDA的反汇编还是比较强大的而且结构也比较清晰。Var_C 表明声明了一块内存地址。argc, argv, envp 是对函数参数的赋值。fldz 清除状态寄存器push 61h 第三个参数sub esp8, fstp [esp+0ch+var_c], 第二个参数; 调用 printf 函数堆栈平衡。 我们可以按 改变不同类型的视图。也可以在这里打开几个相同的view 2. 基本类型的识别 我们按. 阅读全文
posted @ 2011-04-08 22:39 sld666666 阅读(4172) 评论(0) 推荐(1) 编辑
摘要: 1. 常用正则表达式表达式说明\r, \n代表回车和换行符\t制表符\\代表 "\" 本身\^匹配 ^ 符号本身\$匹配 $ 符号本身元字符说明.匹配除了换行符以外的任意字符\w匹配字母、数字、下划线、汉字\s匹配任意的空白符\b单词的开始或结尾\~匹配字符串的开始$匹配字符串的结束如:\ba\w*\b :匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。\d+ :匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。\b\w 阅读全文
posted @ 2011-03-16 10:13 sld666666 阅读(6226) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是CSV格式文档 所谓“CSV”,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。通常CSV文件开头是不留空的,以行为单位,每行记录多项数据,每项数据用逗号 来分隔(标准英文逗号)。如用记事本写下:name_1, num_1, file_1 name_2, num_1, file_2 name_3, num_3, file_3保存为.csv 用excel 打开就是这样的: 2. 利用Qt写入CSV 文件 Qt创建一个.csv文件就非常简单了: 1 #include <QtCore/QCoreApplication> 2 #incl 阅读全文
posted @ 2011-02-23 11:46 sld666666 阅读(2896) 评论(0) 推荐(0) 编辑
摘要: 这篇文章介绍喊话功能的实现, 游戏还是热血江湖。1. 原理: 游戏中, 喊话的函数应该是这样的:[代码] 我们要实现喊话功能, 只需要找到speak函数的地址, 压入参数然后调用之即可。2. speak函数分析 逆向工程都是从数据开始的。 所以我们首先用CE来分析数据。 打开CE, 进行如下搜索: 然后,用22222222222过滤 这里我们发现0xD0A784和0x0470766c都可能为喊话内容的地址。修改者两个地址的内容如下: 然后在游戏中按下回车, 发现输出的是222222, 所以我们喊话内容的地址就为0x0470766C。 接下来我们就可以分析是谁调用了这个地址的内容了。用CE 阅读全文
posted @ 2011-02-20 21:05 sld666666 阅读(1516) 评论(0) 推荐(0) 编辑
摘要: 这篇文章讲述如何实现如下的一个treeView. 首先设置treeView的外框, 大小, model等[代码]然后把数据填充到item中[代码]第三步设置treeview 能够被多选[代码]第三步设置右键选择菜单[代码] 阅读全文
posted @ 2011-02-15 14:23 sld666666 阅读(11498) 评论(0) 推荐(0) 编辑
摘要: CALC : 判断表达式 WATCH : 添加监视表达式 AT : 在指定地址进行反汇编 FOLLOW : 跟随命令 ORIG : 反汇编于 EIP DUMP 在指定地址进行转存 DA : 转存为反汇编代码 DB : 使用十六进制字节格式转存 DC : 使用 ASCII 格式转存 DD : 转存在堆栈格式 DU : 转存在 UNICODE 格式 DW : 使用十六进制字词格式转存 STK : 前往堆栈中的地址 AS : (AS + 地址 + 字符串) 在指定地址进行汇编 BP : 进行条件中断(有条件的断点) BPX : 中断在全部调用 (Call) BPD : 清除全部调用中的断点 BC : 阅读全文
posted @ 2011-02-09 09:59 sld666666 阅读(2279) 评论(0) 推荐(0) 编辑
摘要: 实现如上的一个多级menu, Qt 中实现非常简单。 首先明确一个概念, QMenu表示“容器”, QAction表示具体的项。 所有上图中”其他”,“发票”等都要是QMenu, 而代充类型、有发票都要是QAction, 所以代码实现就非常简单了。1. 构造[代码]2.析构[代码]注意顺序。3. 代码实现[代码]4. 快捷键以及分割线[代码] 阅读全文
posted @ 2011-01-25 14:00 sld666666 阅读(3926) 评论(0) 推荐(0) 编辑
摘要: 假设我们有如下代码:而且我们知道函数add 的地址是 0x00401630. 这篇文章的目的就是写一个程序,注入到目标进程,然后调用这个进程的add()函数。要注入到目标进程有很多种方法, 这里我选择用CreateRemoreThread 来示例。HANDLE CreateRemoteThread( HANDLE hProcess, //目标进程的句柄 LPSECURITY_ATTRIBUTES lpThreadAttributes,//指向线程的安全描述结构体的指针,一般设置为NULL,表示使用默认的安全级别 SIZE_T dwStackSize,//线程堆栈大小,一般设置为0,表示使用默认 阅读全文
posted @ 2011-01-19 21:34 sld666666 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 这个话题比较敏感, 呵呵,不过先写吧。1. 例子 首先我们自己写一个小程序, 这个程序的目的就是模拟游戏的HP MP 以及CALL 的功能。程序用MFC 写成,代码非常简单。 声明一个结构体:[代码]在类中使用它: [代码]在相关事件函数中增加减少其数值,然后显示,如图: 我们的目的就是写一个程序, 判断人物的HP,MP, 以及自动加血、见血、使用技能。2. 原理 我们知道windows 32程序的数据都是会存在虚拟内存之中, 如果我们需要修改某一数据,只需要修改其对应的内存地址上的值就可以了。 但是win32又是一个进程独立的系统, 所以要实现一个外挂需要做两步: 1. 分析数据 2. 注 阅读全文
posted @ 2011-01-18 19:34 sld666666 阅读(740) 评论(0) 推荐(0) 编辑
摘要: 这只是一篇读书笔记。1. C语言提供的端口函数 C语言提供了操作I/O端口的函数。这些函数会电泳IN 和OUT 汇编指令。 当然这些函数只能在内核模式下执行。我们可以自定了如下的函数:[代码]2. DDK 的端口操作函数 DDK 同样提供了类似的端口操作函数。函数名描述READ_PORT_UCHAR8位输入READ_PORT_USHORT16位输入READ_PORT_ULONG32位输入READ_PORT_BUFFER_UCHAR8位连续输入READ_PORT_BUFFER_USHORT16位连续输入READ_PORT_BUFFER_ULONG32位连续输入WRITE_PORT_UCHAR8位 阅读全文
posted @ 2011-01-16 16:06 sld666666 阅读(2740) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 11 下一页