edi

攻防世界-Reverse-Hellp,CTF

╄→尐↘猪︶ㄣ 提交于 2020-11-21 04:48:37
拿到一个.exe的文件,还是peid看一下,嗯,无壳,直接od 单步跟踪到此,要求输入flag,我们输入abcd 然后出现字符串的对比,如果超了会直接over的,对于repne scas byte ptr es:[edi]我也写了篇小博客来说明 继续向下走,出现循环,是把输入的字符进行ASCII转换存入堆栈和edx 向下走一步就看见一串ASCII,没有大于f的字母,先转换一下进制看看有木有用, http://www.ab126.com/goju/1711.html ok,确实是flag 来源: oschina 链接: https://my.oschina.net/u/4159464/blog/3070669

看雪CTF 2016_第五题分析

亡梦爱人 提交于 2020-11-21 04:21:17
这个题是一道穷举题,考察的应该是编程能力吧! 本题算法不是很难,也是挺好分析的。 这个程序可以下 GetDlgItem 这个 api 可以定位到关键地方。 00401183 > /8A540C 20 mov dl,byte ptr ss:[esp+ecx+0x20] 指向输入的假码 00401187 . |80FA 30 cmp dl,0x30 检测输入的假码是否小于 30 即是否小于 0 0040118A . |7C 0C jl short CrackMe.00401198 0040118C . |80FA 39 cmp dl,0x39 检测输入的假码是否大于 39 即是否大于 9 0040118F . |7F 07 jg short CrackMe.00401198 00401191 . |41 inc ecx 00401192 . |3BC8 cmp ecx,eax 00401194 .^\72 ED jb short CrackMe.00401183 0040119A > \83F8 06 cmp eax,0x6 检测注册码长度是否为 6 位 0040119D . 75 56 jnz short CrackMe.004011F5 0040119F . 85FF test edi,edi 004011A1 . 74 52 je short CrackMe.004011F5

标志寄存器相关

最后都变了- 提交于 2020-11-10 05:15:17
1.关于标志寄存器 标志寄存器(EFLAGS)又称为程序状态和控制寄存器(Program Status andControl Register),主要用于记录当前的程序状态。 1)进位标志(CF ->carry flag):如果运算结果的最高位产生了进位或借位操作时标志位置 1 例:定义数值宽度为 32 位,则 0xFFFFffff+2 在运算过程中出现进位。 2)奇偶标志(PF ->parity flag):运算结果值中 1 的个数为偶数置 1 例:运算结果 0x4567 中 1 的个数是? 站在计算机的角度,它是 0100010101100111B。所以有8 个 1, PF=1。 3)辅助进位标志(AF ->auxiliary carry flag):在以下情况下该标志位置1 字操作时,发生低字节向高字节进位或借位; 字节操作时,发生低4位向高4位进位或借位; 4)零标志(ZF ->zero flag):运算结果为零置 1 5)符号标志(SF ->sign flag):其结果与最高位相同; 因为有符号数的负数最高位是1,正数最高位是0; 6)单步标志(TF):单步使能置 1,当该位置 1 时,可以对程序进行单步调试。 7)中断使能标志(IF):响应可屏蔽中断置 1 8)方向标志(DF ->direction flag):字符串指令(MOVS, CMPS, SCAS, LODS

Electropure® EDI公司介绍

孤人 提交于 2020-11-05 05:03:32
  美国SnowPure水技术公司总部位于美国加利福尼亚州.圣克莱门特市,在全球雇佣超过1000名员工,数十个服务分支机构,拥有自己独立的EDI离子膜生产线和EDI模块制造生产线。自1977年开始研究和发展EDI技术,其Electropure® EDI产品技术有超过40年的发展历史。几十年来,Electropure一直只专注于EDI及离子膜技术的研究和其产品的推广应用,是全球EDI技术的先行者,也是全球唯一一家几十年非常专业和专注于EDI技术与产品领域应用研究的公司。   Electropure作为全球首选的EDI膜产品和技术合作伙伴,在全球超过40多个国家拥有数千套装载有Electropure®EDI的系统在运行 ,从上世纪80年代开始就有产品在中国应用,到2006年在中国成立专门独立的销售和技术服务团队以来,目前在国内电力、化工、冶金、电子半导体、医药食品等行业和领域拥有数百套的Electropure®EDI除盐水及超纯水系统在安全、稳定运行。 来源: oschina 链接: https://my.oschina.net/u/4275560/blog/4702426

图解Linux是如何进行函数调用的?

断了今生、忘了曾经 提交于 2020-10-29 05:08:18
先抛出几个问题: 进程虚拟地址空间是如何分布的? 函数调用的栈帧结构是什么样子? 函数调用涉及到的寄存器都起了什么作用? 函数参数是如何传递的?传递顺序如何? 函数的返回值是如何传递的? 如果您对上述问题有些困惑,请继续往下看吧! 进程的内存布局 如图: 高地址的一部分空间会分配给内核,称为内核空间,剩下的内存空间给用户使用,称为用户空间。 用户空间中有几个 主要的内存区域 : 栈: 用于维护函数调用的上下文,离开了栈,函数调用就没法实现,栈通常在用户空间的最高地址处分配,通常有数兆字节的大小。 堆: 堆用来容纳程序动态分配的内存区域,程序中malloc或new分配的内存就来自堆里。堆通常存在于栈的下方(低地址方向),在某些时候,堆也可能没有固定统一的存储区域,堆一般比栈大很多,可以有百兆甚至几G的大小。 动态链接库映射区: 这个区域用于映射装载的动态链接库,Linux下如果可执行文件依赖其它共享库,那系统就会在这个区域分配相应空间,并将共享库装入该空间。 可执行文件映像: 存储着可执行文件在内存里的映像,由装载器在装载时将可执行文件的内存读取或映射到这里。 保留区: 保留区并不是一个单一的内存区域,而是堆内存中受到保护而禁止访问的内存区域的总称,例如在大多数操作系统里,极小的地址通常都是不允许访问的,如NULL,通常C语言将无效地址赋值为0也是出于这个考虑

深入理解计算机系统:期末整理与复习

房东的猫 提交于 2020-10-14 14:59:39
文章目录 前言 第一章:概述 知识点 编译 系统硬件组成 系统之间的网络通信 操作系统的抽象表示 操作系统的几个基本抽象概念 Admahl定律 练习题 例1.1 第二章:信息的表示和处理 知识点 进制转换 字数据的大小 字节顺序 移位运算 位级运算 整数表示 编码方式 整数数据类型 编码 无符号数编码 反码编码 补码编码 有符号数和无符号数之间的转换 扩展数字的位表示 截断数字 整数运算 无符号加法 补码加法 无符号乘法 补码乘法 无符号和补码的乘法的位级等价性 乘以常数 除以2的幂 舍入 无符号除法 补码除法(向下舍入) 补码除法(向上舍入) 浮点数 二进制小数 IEEE浮点表示 规格化 非规格化 特殊值 示例 舍入 浮点运算 浮点乘法 浮点加法 C语言中的浮点数 练习题 第三章:程序的机器级表示 知识点 机器级代码 数据类型 访问信息 整数寄存器 操作数指示符 数据传送指令 压入和弹出栈数据 算术和逻辑操作 加载有效地址 一元操作 二元操作 特殊的算术操作 控制 条件码 设置条件码 访问条件码 条件分支 跳转指令 用条件控制来实现条件分支 条件传送指令 用条件传送来实现条件分支 循环 do-while循环 while循环 跳转到中间 guarded-do for循环 switch语句 过程 运行时栈 栈操作 pushq Src popq Dest 转移控制 数据传送

傀儡进程学习

浪子不回头ぞ 提交于 2020-10-09 00:19:58
0x00 前言 最近做了一道18年swpuctf的题,分析了一个病毒,正巧都用到了傀儡进程,就想着把傀儡进程学习一下。本文权当个人的学习总结了一些网上的文章,如有错误,还请路过的大佬斧正。 0x01 SWPUCTF -- GAME 进入main函数 先获取当前目录,再拼上GAME.EXE 进入sub_4011D0 首先寻找资源,做准备工作,进入sub_4012C0 1)检测PE结构 2) CreateProcessA 创建进程 3)GetThreadContext 得到进程上下文信息,用于下文计算基地址 4)sub_4016F0 到ntdll.dll里找到NtUnmapViewOfSection函数 5)VirtualAllocEx 跨进程,在目标进程申请空间 6)写入文件 7)SetThreadContext 恢复现场 8) 运行傀儡进程 我们来找找注入的程序 把GAME.EXE载入到010editor里,搜索"MZ" dump出来,就是刚刚注入到傀儡进程的程序了。 我们把它命名为 game2.exe 载到IDA里分析 发现是D3D绘制 之后的解题与本文关系不大,这里直接把官方的WP搬运来了 https://www.anquanke.com/post/id/168338#h3-16 通过字符串[Enter]可以跟踪到获取输入以及返回上一层的地 这里用了’ –

汇编程序设计与计算机体系结构软件工程师教程笔记:函数、字符串、浮点运算

别等时光非礼了梦想. 提交于 2020-10-06 00:51:10
《汇编程序设计与计算机体系结构: 软件工程师教程》这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译。中文版是2019年出版的。个人感觉这本书真不错,书中介绍了三种汇编器GAS、NASM、MASM异同,全部示例代码都放在了GitHub上,包括x86和x86_64,并且给出了较多的网络参考资料链接。这里只摘记了NASM和MASM,测试代码仅支持Windows和Linux的x86_64。 6. 函数 6.2 栈内存入门: 栈内存 (stack memory) 是为自动变量而设的一块区域 (这里的自动变量是指局部变量,或者说非动态的变量)。调用函数的时候,需要用栈来保存函数中的局部变量,而函数结束的时候,则需要弃用这些变量。高级语言的一项特征在于它会自行管理栈内存(这有时也叫做运行时栈或运行期栈),相反,汇编语言不会这样做,而是需要你自己去管理。 与栈内存有关的重要事项: (1).栈会在调用函数时增长,并在调用结束时收缩。 (2).栈会在创建(或者说推入/压入)局部变量时增长,并在弃用(或者说弹出)局部变量时收缩。 (3).每个进程或线程的栈,其大小受操作系统限制,例如Linux/Mac系统默认是8MB,Windows默认是1MB。 (4).每次调用函数(这也包括调用主函数main(),以及递归地调用自身)都会出现对应的栈帧(stack frame)

各种缩写名词汇总,力求最全面最精确

天大地大妈咪最大 提交于 2020-10-01 12:49:51
目录 管理系统类 商业模式类 其它 持续更新。。。。。。。。。 管理相关 ERP:企业资源规划 (Enterprise Resource Planning) OA:办公自动化(Office Automation),数字化、智能化办公,无纸化办公 MES:制造执行系统 (Manufacturing Execution System) CRM:客户关系管理 (Customer Relationship Management) SCM:供应链管理 (Supply Chain Management) APS:先进规画与排程系统 (Advanced Planning and Scheduling) PLM:产品生命周期管理(Product Lifecycle Management) EAM:企业资产管理(Enterprise Asset Management) WMS:仓储管理系统(Warehouse Management System) WIP:在制品 (Work In Process) MTS : 按库存生产 MTO:按订单生产 ATO:按订单装配 BOM:物料清单 (Bill Of Material) SCADA:数据采集与监视控制系统(Supervisory Control And Data Acquisition);以计算机为基础的DCS与电力自动化监控系统;它应用领域很广

对某游戏功能实现的逆向分析及实现变态功能

ε祈祈猫儿з 提交于 2020-08-19 18:31:08
不知道有没有人玩过QQ堂这款游戏,这是一个08年的竞技游戏,玩家通过放"泡泡"与其他玩家进行PK,童年时代特别喜欢玩,只可惜这款游戏后来毁于辅助泛滥。时至今日,win10系统已经不兼容QQ堂这款游戏了,所以我拿了火拼QQ堂这款游戏进行逆向分析,分析当年那些让人眼花缭乱的功能是如何实现的。 通常竞技类游戏的变态功能容易实现,原因就是竞技类游戏往往追求及时反馈以及对游戏的流畅性要求高,因此很多游戏功能的实现逻辑都是放在客户端执行的,通过修改内存或者封包都很容易实现变态功能。而角色扮演类,回合制等游戏则对这些没有太过严格的追求,因此游戏功能的实现逻辑大部分都是放在服务器上运行的,所以变态功能没有竞技类游戏那么好实现,而且要实现变态功能一般都是用封包去找服务器的漏洞。 之前发过一篇"火拼QQ堂穿墙功能的挖掘",实现穿墙,有些数据下面的分析会用到,传送门:https://mp.weixin.qq.com/s/DdEpDFn3sen7Jb3rU-K3iA 这次把火拼QQ堂的人物放泡泡整个的执行流程大体分析一遍,主要是学习了一段时间后,想试试通过反汇编把游戏中某个功能的整个实现流程大体读懂,其中有分析不明白的地方,以后分析出来了会作补充。其中有分析有错误的地方,也请各路大神多多指正。 游戏中有一个内存地址记录了当前泡泡道具的数量,先用CE把这个内存地址找到,当我们在游戏里放个泡泡