[RE]lab1B&lab1A's writeup&脚本;使堆栈平衡的另一种方法
2017-12-03 09:48
447 查看
lab1B
main:
1.读取输入(数字密码,password)2.将 password 与数字 322424845 传入test函数
test:
3.将 322424845 - password 的结果(result)传入decrypt,如果 result 的范围不在1~21以内,则传入一个随机数decrypt:
4.将字符串中的每一个字符与result异或,若得到的字符串结果为”Congratulations!”,则成功,否则失败。>>> print(322424845-(ord('Q')^ord('C'))) 322424827
———————————————————————————
lab1A
main:
1.读取输入字符串(username),以及数字(serial)2.将username,serial传入函数auth,若auth的返回值为0,则成功
auth:
3.若auth的返回值要为0,则需要满足:a.username的长度length大于5
b.ptrace(0, 0, 1, 0)!=-1(这个ptrace函数似乎与进程跟踪有关,百度了一下,依然不是很懂)
c.username中的每一个字符的ascii值大于31
满足上述条件,执行的代码块是:
v4 = (username[3] ^ 0x1337) + 6221293; for ( i = 0; i < length; ++i ) v4 += (v4 ^ username[i]) % 0x539; result = serial != v4; // serial != v4 的值应为0,则v4就等于serial
用python实现一下:
def fun(username): length = len(username) v4 = (ord(username[3]) ^ 0x1337) + 6221293 for i in range(length): v4 += (v4 ^ ord(username[i])) % 0x539 return v4 print(fun("Pepper"))
———————————————————————————
使堆栈平衡的另一种方法
既然知道了是“add esp 4”使堆栈不平衡的,那么在汇编代码段中选中4,
转到Hex-View窗口,F2,把4改成0,再次F2保存编辑结果,
同样也是可行的。
相关文章推荐
- Oracle & SQLServer 脚本批量执行方法
- JQuery的html(data)方法与<script>脚本块的解决方法
- net 与 javascript脚本的几种交互方法
- iOS中组数的另一种表示方法 @[@"a1", @"a2", @"a3", @"a4", @"a5"];
- 【堆栈平衡的说明太有才了】转贴自Jim's blog
- 减小应用程序占用内存的另一种方法(AHK脚本)
- Java LinkedList特有方法程序小解 && 使用LinkedList 模拟一个堆栈或者队列数据结构。
- swift基础笔记6-方法&下标脚本
- 树莓派开机启动python脚本的另一种方法
- Swift(十二、方法&下标脚本)
- JQuery的html(data)方法与<script>脚本块的解决方法
- andengine 创建菜单的另一种方法
- 巨简单循环shell脚本验证&符号后台操作(并记录查看当前shell的方法)
- IE浏览器提示"是否停止运行此脚本"的解决方法
- emule下载完成自动关机及"无法找到脚本引擎vbscript"解决方法
- MacPorts卡在"正在运行软件包脚本"解决方法
- 网页中"IE限制网页访问脚本或ActiveX控件"的提示问题的解决方法
- 关于ExtJs4提交数据到jsp页面,返回正确的json显示例子。及error:You're trying to decode an invalid JSON String...解决方法
- 解决PD生成Oracle数据库脚本时,表名和字段带有“”双引号的方法
- 兼容IE & Firefox 的脚本改本属性值的检测方法 [ 不支持Chrome ]