160 - 51 DueList.6

环境: Windows xp sp3
工具: Ollydbg exeinfope

0x00 查壳
在这里插入图片描述

发现程序没有加壳,那么我们可以直接分析了。

0x01 分析

运行程序看一看
在这里插入图片描述

看到错误信息的字符串后我们可以直接搜索了。
在这里插入图片描述
可以看到程序会比较输入的长度是否为8位,如果不是就会弹出错误的信息,然后再进入函数0040104B检验输入的内容是否正确。

我们到0040104看一下。
在这里插入图片描述
不难看出核心的内容主要从 0040106B开始,然后进入循环,循环次数与输入的内容的前4位相关,循环结束后判断exa的值是否满足要求。

同样的算法执行了两遍,唯一不同的是eax的初始值和判断值不同。

在这里插入图片描述
这次循环次数与输入内容的后4位相关,核心算法还是与上面相同。当两次的检验均满足后才会使得eax返回1,显示正确的消息框。

0x02 算法分析
程序的核心算法比较简单,由于输入的内容是循环的次数,所以我们可以让程序反过来计算,并且一直执行,直到满足条件为止,这样循环的次数就是我们应该输入的内容了。

	unsigned int num1 = 0x36455544;unsigned int temp = 0x4071885;int cl = 1;int ah = 0;int al = 0;int sub = 0;unsigned int sum = 0;while(temp!=num1 || sum==0xDBD76F6){sum++;sub = temp & 0xFF;              sub = (sub - cl) & 0xFF;               temp = temp & 0xFFFFFF00 | sub;         //add al,clah = (temp & 0xFF00) /0x100;al = temp & 0xFF ;ah = ah^al;                            //xor ah,altemp = (temp&0xFFFF0000)|((ah*0x100)|al);temp = temp >>6 | temp<<26;           // rol eax,0x6cl++;if(cl>0xFF){cl = 0;}}

这里是核心算法的第一部分,第二部分不同点只是初始值不同。
注意的是这里有个判断sum 是否等于0xDBD76F6,当第一次验证的循环次数为这个值的时候,也能使得eax满足条件,但是显然这个值是无法输入的,所以我们要忽略掉这个值。

最后就可以得到:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

160 - 52 egis.1

环境&#xff1a;windows xp 工具&#xff1a; 1、OllyDBG 2、exeinfo 3、IDA 0x00 查壳 加了UPX壳&#xff0c;那么就要脱壳了。可以使用单步法来脱壳。 UPX壳还是比较简单的&#xff0c;开头pushad&#xff0c;找个popad&#xff0c;然后就是jmp了。 然后就可以用OD来…

玩转MySQL之Linux下的简单操作(服务启动与关闭、启动与关闭、查看版本)

小弟今天记录一下在Linux系统下面的MySQL的简单使用&#xff0c;如下&#xff1a; 服务启动与关闭 启动与关闭 查看版本 环境 Linux版本&#xff1a;centeros 6.6&#xff08;下面演示&#xff09;&#xff0c;Ubuntu 12.04&#xff08;参见文章末尾红色标注字体&#xff09; M…

实验八第二题

转载于:https://www.cnblogs.com/huangsilinlana/p/3411550.html

敏捷自动化测试(1)—— 我们的测试为什么不够敏捷?

测试是为了保证软件的质量&#xff0c;敏捷测试关键是保证可以持续、及时的对软件质量情况进行全面的反馈。由于在敏捷开发过程中每个迭代都会增加功能、修复缺陷或重构代码&#xff0c;所以在完成当前迭代新增特性测试工作的同时&#xff0c;还要通过回归测试来保证历史功能不…

ios 程序学习

马上着手开发iOS应用程序&#xff1a;五、提交应用与寻找信息 2013-01-11 15:36 佚名 apple.com 我要评论(0) 字号&#xff1a;T | T本文介绍了您已经学习完如何开发一个优秀的iOS应用之后&#xff0c;应该掌握的内容&#xff0c;包括将您的应用提交到App Store让其他人下载&am…

lucene4入门(2)搜索

欢迎转载http://www.cnblogs.com/shizhongtao/p/3440479.html 接着上一篇&#xff0c;这里继续搜索&#xff0c;对于搜索和创建一样&#xff0c;首先你要确定搜索位置&#xff0c;然后用规定的类来读取。还要注意一点&#xff0c;确定分词器&#xff0c;因为不同的分词器所创建…

Topcoder SRM 648 (div.2)

第一次做TC全部通过&#xff0c;截图纪念一下。 终于蓝了一次&#xff0c;也是TC上第一次变成蓝名&#xff0c;下次就要做Div.1了&#xff0c;希望div1不要挂零。。。_(:зゝ∠)_ A. KitayutaMart2 万年不变的水题。 #include<cstdio> #include<cstring> #include&…

OpenFire源码学习之十九:在openfire中使用redis插件(上)

Redis插件 介绍 Redis是目前比较流行的NO-SQL&#xff0c;基于K,V的数据库系统。关于它的相关操作信息&#xff0c;本人这里就不做重复了&#xff0c;相关资料可以看这个网站http://www.redis.io/(官网)、http://www.redis.cn/(中文站)。 这里本人想说的是&#xff0c;拿Redis做…

没有文件扩展“.js”的脚本引擎问题解决

安装MinGW的时候提示没有文件扩展“.js”的脚本引擎。原因&#xff1a;系统安装Dreamwear、UltraEdit、EditPlus后修改了.js文件的默认打开方式。当想直接执行js脚本时就会出现此错误。解决办法&#xff1a;打开注册表编辑器&#xff0c;定位[HKEY_CLASSES_ROOT.js]这一项&…

160 - 54 eKH

环境&#xff1a;windows xp 工具&#xff1a; 1、OllyDBG 2、IDA 3、exeinfo 查壳发现是程序无壳且用Delphi语言编写 可以通过搜索字符串的方式定位关键函数地址 这里定位到是 00427B44ReadInput(a2, &v17); // 读取输入的usernameif ( StrL…

cpri带宽不足的解决方法_白皮书:FPGA赋能下一代通信和网络解决方案(第四部分)...

对PCIe Gen 5的支持除了以太网和存储控制器&#xff0c;Speedster7t FPGA上提供的对PCIe Gen 5的支持还能够与主机处理器紧密集成&#xff0c;以支持诸如sidecar智能网卡(SmartNIC)设计等高性能加速器应用。PCI Gen 5控制器使其能够读取和写入存储在FPGA内存层级结构中的数据&a…

山体等高线怎么看_每日一题 | 此处向斜山,你看出来了吗?

每日一题 | 此处向斜山&#xff0c;你看出来了吗&#xff1f;(2018江苏高考)如图为某区域地质简图。该区沉积地层有Q、P、C、D、S2、S1&#xff0c;其年代依次变老。读图回答1&#xff5e;2题。1&#xff0e;从甲地到乙地的地形地质剖面示意图是(  )2&#xff0e;为揭示深部地…

java和c++的区别大吗_大空间消防水炮ZDMS0.8/30S坐装和吊装有区别吗?

大空间消防水炮现在是高大建筑的消防必备的设备之一&#xff0c;其型号按照流量可分为4种&#xff0c;ZDMS0.6/5S&#xff0c;ZDMS0.6/10S&#xff0c;SZDMS0.8/20S&#xff0c;ZDMS0.8/30S。在这中间使用较多的是5L和30L的&#xff0c;5L的消防水炮都是吊装&#xff0c;但是30…

Windows Hook(1)加载DLL

DLL代码 #include <Windows.h> BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) {switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:MessageBox(NULL, L"dllHook", L"Hook", MB_OK);break;case DLL_THR…

silverligh的数据访问

对于在Silverlight中访问数据&#xff0c;初学者的误解之一就是他们在Silverlight中寻找ADO.NET类库。别找了&#xff0c;找不到的。记住&#xff0c;Silverlight是部署在互联网上的客端技术&#xff0c;你不能要求一个浏览器插件去直接访问你的数据库……除非你想把数据库直接…

cacheinterceptor第二次访问没被调用_访问者设计模式在OSG中的应用

为什么要谈谈访问者设计模式呢&#xff1f;因为OSG整个引擎就是用访问者设计模式建立起来的&#xff0c;不论是遍历节点图&#xff0c;还是做各种实用的功能&#xff0c;都需要大量的用到访问者设计模式。先谈谈访问者设计模式的定义。1&#xff1a;什么是访问者模式访问者模式…

Windows Hook(2)调用DLL函数

DLL代码 #include <Windows.h>BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) {switch (ul_reason_for_call){case DLL_PROCESS_ATTACH:MessageBox(NULL, L"dllHook", L"Hook", MB_OK);break;case DLL_THRE…

pygame只能编写游戏_游戏框架搭建

游戏框架搭建目标 —— 使用 面相对象 设计 飞机大战游戏类目标明确主程序职责实现主程序类准备游戏精灵组01. 明确主程序职责回顾 快速入门案例&#xff0c;一个游戏主程序的 职责 可以分为两个部分&#xff1a;游戏初始化游戏循环根据明确的职责&#xff0c;设计 PlaneGame 类…

poj3335 半平面交

题意&#xff1a;给出一多边形。判断多边形是否存在一点&#xff0c;使得多边形边界上的所有点都能看见该点。 sol&#xff1a;在纸上随手画画就可以找出规律&#xff1a;按逆时针顺序连接所有点。然后找出这些line的半平面交。 题中给出的点已经按顺时针排好序了&#xff0c;所…

php进程间通信 yoc_续上篇Swoole多进程数据共享的问题

原因进程作为程序执行过程中资源分配的基本单位&#xff0c;拥有独立的地址空间,同一进程的线程可以共享本进程的全局变量&#xff0c;静态变量等数据和地址空间&#xff0c;但进程之间资源相互独立。由于PHP语言不支持多线程&#xff0c;因此Swoole使用多进程模式&#xff0c;…