程序破解实践

指令及对应机器码:

NOPNOP指令即“空指令”。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。(机器码:90)

JNE条件转移指令,如果不相等则跳转。(机器码:75)

JE条件转移指令,如果相等则跳转。(机器码:74)

JMP无条件转移指令。段内直接短转Jmp short(机器码:EB)段内直接近转移Jmp near(机器码:E9)段内间接转移Jmp word(机器码:FF)段间直接(远)转移Jmp far(机器码:EA)

CMP:比较指令,功能相当于减法指令,只是对操作数之间运算比较,不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。

实践内容:

需破解代码如下:

代码功能是输入密码与预存密码进行比对,正确输出right,否则输出wrong。

基于该代码的可执行文件实现以下三个修改:

1.不管输入正确与否都输出right。

使用gcc命令生成可执行文件1

使用objdump -d 1命令反汇编

代码非常简单,注意标记的jne命令,表示在前面的cmp指令比较结果为不相等时跳转,cmp指令比较的值即原本密码和输入的值,当两者不等时跳转0x80484ee输出wrong,否则继续执行下一条指令输出right,要实现不相等时也输出right只需将跳转地址改为8048400即可,即修改该条指令为7500

用vi打开该可执行文件,使用%!xxd命令16进制显示

然后使用/750e指令查找制定代码,如果无法搜索到则在中间加空格子/75 0e

将其修改成7500,然后使用:%!xxd -r命令还原成二进制,最后:wq保存即可

下面是将修改后的文件反汇编的结果

实际执行结果如预期

2.不管输入正确与否都输出wrong。

同样只要修改750e为eb0e即无条件的jmp即可,过程相同,下面是修改后反汇编的结果

3.输入正确密码输出wrong,输入错误密码输出right。

同样只要修改750e为eb0e即相同时条状的je即可,过程相同,下面是修改后反汇编的结果

时间: 2024-10-13 00:29:12

程序破解实践的相关文章

20135306 2.3程序破解实践

<Linux>实践——2.3 程序破解  20135306 黄韧 一.掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即“空指令”.执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令.(机器码:90) JNE:条件转移指令,如果不相等则跳转.(机器码:75) JE:条件转移指令,如果相等则跳转.(机器码:74) JMP:无条件转移指令.段内直接短转Jmp short(机器码:EB)段内直接近转移Jmp near(机器码:E9

linux实践之程序破解

linux实践之程序破解 这次的实践是文件破解,让我们从login可执行文件开始吧! 首先我们执行一下这个可执行程序 ①我们希望在不知道密码的情况下,能够登陆进去.且无论密码是什么,都是提示“on your command,my master!”. 首先对该程序执行反汇编. 我们首先要找到main函数的入口处. 我们可以看到cmp语句后,有jmp语句,如果不等于就跳转到“0x8048466”处,这是正常程序执行的过程,我们在这里希望不等于的时候,也不要跳转,所以可以把“75 0e”修改为“75

linux实践程序破解

程序破解 一.建立1.c文档 二.编译并查看 命令为:gcc -o 1 1.c 反汇编:objdump -d 1 三.转16进制 命令::%!xxd main函数的汇编代码中可以看出程序在调用“scanf”函数请求输入之后,对 [esp+0x1c] 和 [esp+0x18] 两个内存单元的内容进行了比较,其作用应该是对比用户输入和预设口令.即预设口令被存放与局部变量 [esp+0x1c]中. 四.将750c改为7500 五.将16进制转回 六.学习总结 NOP:NOP指令即“空指令”.执行到NO

net程序破解神器

本帖最后由 Pnmker 于 2012-12-2 05:19 编辑 原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这 四大神器我似乎觉得几乎所有的NET程序破解都不在话下了.而我竟然在发现这神器组合后推迟了一周才分享与大家! 在开始分享之前,还是要说明一点,说是神器到目前为止也仅仅是对我自己而言,至于这四大神器会不会成为对各位而言的神器就不得而言了,因此当有哪位亲拿到这四大神器后仍然感到破解NET程序

微信开通程序 破解版微信检测助手

如今新入微商行业的大军很多,同样的一个产品做得人越来越多!那么问题来了,客源哪里来,你有好东西,卖给谁?你天天发广告,谁看?很多人只知道在自己朋友圈简单发布一些产品广告,如果光靠你目前那点质量低下的朋友圈.你就是刷爆了也没有成交量的,只会让你的朋友慢慢的把你拉黑,现在大部分人每天都在辛苦的上传产品讯息,首先要知道,朋友圈内的人绝大部分都是自己朋友.亲戚,所以精准客户相对来说寥寥无几. 微信开通程序 破解版微信检测助手 今天小编就交给大家一些比较实用的方法及教你使用微商加好友的便捷工具. 先说说绝

程序破解

程序破解 源代码:hello.c #include<stdio.h> #include<string.h> int main() { char name[10]; char a[10]="wjj"; char passwod[10]; char b[10]="20135302"; scanf("%s",name); if(strcmp(name,a)!=0) { printf("user error\n"

Linux及安全——程序破解

Linux及安全——程序破解 由于我的Ubuntu的vi有故障,所以用kaili做. 运行原程序 1.反汇编代码,查看 objdump -d login 2.修改代码 vi login 转换为16进制 :%!xxd 查找要改的字节 (1)改成无论入什么,都输出on your command, my master! /75 0e 或者 /750e 运行,更改成功 (2)改为无论输入什么,程序直接结束 750e --> 751a (3)更改登录密码 fe07 --> 1804

VB程序破解之API断点[bp __vbaVarTstEq]

软件名称:风云足彩1.7软件大小:2.1M下载地址:http://free.ys168.com/?zhinengxuanhao软件保护:注册码编写软件:Microsoft Visual Basic 5.0 / 6.0 [Debug]破解工具:PEiD,OD破解作者:WildCatIII[D.4s] 引用: 软件介绍:足彩智能选号全能版足彩智能选号全能版 提供了足彩独特选号的方法.不论是足彩高手还是初玩者,足彩智能选号全能版都为他们提供了整套工具,以方便稳中一等奖. 但是,工具不是一个万能.能不能

4.1程序破解

4.1程序破解 20135206 于佳心 ? 基础指令: NOP:NOP指令即"空指令".执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令.(机器码:90) JNE:条件转移指令,如果不相等则跳转.(机器码:75) JE:条件转移指令,如果相等则跳转.(机器码:74) JMP:无条件转移指令.段内直接短转Jmp short(机器码:EB)段内直接近转移Jmp near(机器码:E9)段内间接转移Jmp word(机器码:FF)段间直接(远)转