pwnable kr 之 random

gdb-peda调试pwnable.kr题目random 题目pwnable.kr——6.random各种技术文章开始前的例行叨叨:pwnable.kr是CTF—pwn类型题目学习网站,对其中第6题random解题过程做一份记录。本萌新菜鸡刚接触pwn,顺手做记录,欢迎指正讨论。源码:文件【random.c】#include <stdio.h> int main(){ unsigned int random; random = rand... 阅读详情
(gdb) disass main
Dump of assembler code for function main:
   0x00000000004005f4 <+0>:	push   %rbp
   0x00000000004005f5 <+1>:	mov    %rsp,%rbp
   0x00000000004005f8 <+4>:	sub    $0x10,%rsp
   0x00000000004005fc <+8>:	mov    $0x0,%eax //随机数种子为0
   0x0000000000400601 <+13>:	callq  0x400500 <rand@plt>
   0x0000000000400606 <+18>:	mov    %eax,-0x4(%rbp) //生成一个随机数并放在局部变量v1处(int type) (0x6b8b4567 ;1804289383 ;查看一下eax,因为是伪随机数,所以每次随即出来的值都一样 )
   0x0000000000400609 <+21>:	movl   $0x0,-0x8(%rbp) //初始化局部变量v2
   0x0000000000400610 <+28>:	mov    $0x400760,%eax   
   0x0000000000400615 <+33>:	lea    -0x8(%rbp),%rdx //把局部变量v2的地址提出
   0x0000000000400619 <+37>:	mov    %rdx,%rsi //并作为源地址, &v2
   0x000000000040061c <+40>:	mov    %rax,%rdi  //把0x400760作为 
   0x000000000040061f <+43>:	mov    $0x0,%eax //把eax清零 , scanf的字符串参数
   0x0000000000400624 <+48>:	callq  0x4004f0 <__isoc99_scanf@plt>
   0x0000000000400629 <+53>:	mov    -0x8(%rbp),%eax
   0x000000000040062c <+56>:	xor    -0x4(%rbp),%eax //v1异或v2放到eax中
   0x000000000040062f <+59>:	cmp    $0xdeadbeef,%eax  //
   0x0000000000400634 <+64>:	jne    0x400656 <main+98> //不相等跳走
   0x0000000000400636 <+66>:	mov    $0x400763,%edi //puts输出字符串的地址
   0x000000000040063b <+71>:	callq  0x4004c0 <puts@plt>
   0x0000000000400640 <+76>:	mov    $0x400769,%edi //传入0x400769参数
   0x0000000000400645 <+81>:	mov    $0x0,%eax //将eax清零
   0x000000000040064a <+86>:	callq  0x4004d0 <system@plt>
   0x000000000040064f <+91>:	mov    $0x0,%eax //return 0
   0x0000000000400654 <+96>:	jmp    0x400665 <main+113> 
   0x0000000000400656 <+98>:	mov    $0x400778,%edi // printf输出字符串地址
   0x000000000040065b <+103>:	callq  0x4004c0 <puts@plt>
---Type <return> to continue, or q <return> to quit---r
   0x0000000000400660 <+108>:	mov    $0x0,%eax
   0x0000000000400665 <+113>:	leaveq 
   0x0000000000400666 <+114>:	retq   
End of assembler dump.

(gdb) x/16s 0x400760
0x400760:	"%d"
0x400763:	"Good!"
0x400769:	"/bin/cat flag"
0x400777:	""
0x400778:	"Wrong, maybe you should try 2^32 cases."
0x4007a0:	"\001\033\003;,"
0x4007a6:	""
0x4007a7:	""
0x4007a8:	"\004"
0x4007aa:	""
0x4007ab:	""
0x4007ac:	"\020\375\377\377H"
0x4007b2:	""
0x4007b3:	""
0x4007b4:	"T\376\377\377p"
0x4007ba:	""
(gdb) i r
rax            0x6b8b4567	1804289383
rbx            0x0	0
rcx            0x7ff3248b30a4	140682266882212
rdx            0x7ff3248b30a8	140682266882216
rsi            0x7ffe4171787c	140729996376188
rdi            0x7ff3248b3620	140682266883616
rbp            0x7ffe417178b0	0x7ffe417178b0
rsp            0x7ffe417178a0	0x7ffe417178a0
r8             0x7ff3248b30a4	140682266882212
r9             0x7ff3248b3120	140682266882336
r10            0x47f	1151
r11            0x7ff324529f60	140682263175008
r12            0x400510	4195600
r13            0x7ffe41717990	140729996376464
r14            0x0	0
r15            0x0	0
rip            0x400606	0x400606 <main+18>
eflags         0x202	[ IF ]
cs             0x33	51
ss             0x2b	43
ds             0x0	0
es             0x0	0
fs             0x0	0
gs             0x0	0

v1=0x6b8b4567

v1^v2=0xdeadbeef

v2=0xdeadbeef^v1=0xB526FB88=30392308

random@ubuntu:~$ ./random 
3039230856
Good!
Mommy, I thought libc random is unpredictable...

56

RC模型车多电机驱动方案:从电调PWM原理到四电机安全连接实战 在电机控制领域,PWM(脉冲宽度调制)是实现精确调速的核心技术。其原理是通过调节固定周期内高电平的脉宽来编码控制指令,进而驱动电子调速器(电调)改变输出功率。这项技术对于需要多电机协同工作的场景,如RC模型车的差速转向或重型负载驱动,具有关键价值。它能实现动力的精细分配与同步,提升车辆的可控性与通过性。在实际应用中,为确保系统稳定,必须关注电流分配与信号同步问题。例如,通过为每个电机配备独立电调并采用信号并联(Y线)的方式,可以构建可靠的四电机驱动系统。这种方案能有效避免因单个电调过载或电机反电动势不一致导 阅读详情

相关推荐

《点云处理算法》——GROR配准

GROR点云配准

阁楼 1315

pwnable-random

pwnable.kr是一个经典的CTF中PWN方向练习的专业网站,本文记录的题目是random,主要考察的是函数rand的知识点。

网安星空 427

R语言缺失值填补|插值法、均值法、邻近法

本文主要介绍如何利用R语言进行数值型缺失值的填补。主要使用zoo包中的na.aggregate() 、na.approx()、na.locf() 函数进行缺失值的均值填补、线性插值填补以及邻近值填补。

Mrrunsen的博客 3841

【pwnable.kr】random

题目描述 Daddy, teach me how to use random value in programming! ssh random@pwnable.kr -p2222 (pw:guest) 程序源码如下: include <stdio.h> int main(){ unsigned int random; random = rand(); ...

搓雪小怪兽的工作室 285

【SAP HANA 46】关于HANA CPU高峰到 80-100%

关于HANA CPU高峰到 80-100%

探索 Java 编程的技巧、最佳实践和解决方案。本博客提供针对 Java 开发者的实用指南,涵盖从基础到高级话题,旨在提升编程效率和技能。 429

芒果YOLO11改进137:卷积AKConv篇,即插即用,具有任意采样形状和任意数量的参数的卷积内核

卷积AKConv篇,即插即用,具有任意采样形状和任意数量的参数的卷积内核

包括YOLOv5、YOLOv7、YOLOv8等模型改进 297

random - pwnable

random - pwnable 1.获取题目 我们先用ssh链接上pwnable的服务器获取题目。在终端输入ssh random@pwnable.kr -p2222,出现提示后输入密码guest 查看目录下有的文件以及文件权限ls -l 2. 运行程序、查看文件类型、保护措施 没有任何提示输出,直接要求输入。输入随机字符串后,提示:错误,请尝试2^32 cases 查看文件的基本信息:64...

SkYe's Blog 313

嵌入式工程师成长之路(10)——项目举例

送给大学毕业后找不到奋斗方向的你(每周不定时更新)

云轩阁 5万+

pwnable.kr之random

首先查看题目 int main(){ unsigned int random; random = rand(); // random value! unsigned int key=0; scanf("%d", &amp;key); if( (key ^ random) == 0xdeadbeef ){ printf("Good!\n"); system("/bin/ca...

Jason_ZhouYetao的博客 334

Microsemi Libero系列教程(四)——PLL的使用

文章目录PLL是什么Libero中PLL的使用官方文档 系列教程:Microsemi Libero系列教程 PLL是什么 PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率...

whik1194的博客 7212

00 — Intel xe SVM 内核实现精读系列专栏导读

本文系统介绍了Intel Xe GPU的共享虚拟内存(SVM)实现机制。第一部分通过概念地图阐述SVM的六个核心概念及其关系;第二部分通过三个测试用例解析SVM关键功能:fault生命周期验证、madvise与VRAM迁移、跨GPU一致性;第三部分深入内核实现,包括初始化/销毁流程、Page Fault处理、MMU Notifier失效路径、异步垃圾回收、VRAM迁移机制、madvise实现原理,以及与ROCm SVM的对比。文章建议按功能模块顺序学习,从基本概念到测试用例,再深入内核实现细节,最后对比不同

图形/计算GPU的驱动与虚拟化技术分享园地 1669

【pwnable.kr】 random

https://r00tnb.github.io/2017/12/10/pwnable.kr-random/ 分析 还是先分析源码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <stdio.h> int main(){ unsigned int random;...

子曰小玖的博客 318

OTFS 消息传递算法信号检测【附matlab代码详解】

OTFS 消息传递算法方面的一些浅浅理解。

Cuby的博客 4011

pwnable.kr-random

pwnable.kr-random 这个是(https://pwnable.kr)中第6个题,比较简单。ssh连接后,直接运行里面可执行文件random,随便输入几个数,提示你应该尝试2的32次幂,直接看源码吧。 int main(){ unsigned int random; random = rand(); // random value! ...

Casuall的博客 487

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pwnable.kr——random

【代码】pwnable.kr——random。

xy_369的博客 104

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

pwnable.kr-random-Writeup

MarkdownPad Document pwnable.kr-random-Writeup 与前几题套路相同,ssh远程登录,ls -l查看文件及权限,cat获得C代码如下: 1 #include 2 3 int main(){ 4 unsigned int random; 5 random = rand(); // random va

swywkc2i的专栏 367

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pwnable.kr [random]

pwnable.kr [random] Daddy, teach me how to use random value in programming! ssh random@pwnable.kr -p2222 (pw:guest) 代码如下 #include &lt;stdio.h&gt; int main(){ unsigned int random; ra...

shisuan1的博客 259

简单易懂的 pwnable.kr 第六题[random]Writeupt

简单易懂的 pwnable.kr 第六题[random]Writeupt 题目地址: http://pwnable.kr/play.php 题目: peak小知识 异或^ 据有如下几种性质: 2. 恒等律:a ^ 0 = a 3. 交换律:a ^ b = b ^ a 4. 结合律:a ^b ^ c = a ^ (b ^ c) = (a ^ b) ^ c; 5. 自反:a ^ b ^ a = b. ssh连上之后, 查看一下文件 flag文件无法读取, 查看下random.c的源码 看到里面的ran

Y_peak的博客 218

【pwnable.kr】day6:random

pwnable:random pwnable.kr:random 题目链接 question Daddy, teach me how to use random value in programming! ssh random@pwnable.kr -p2222 (pw:guest) random.c #include &lt;stdio.h&gt; int main(){ unsigne...

weixin_38312031的博客 262

【Writeup】pwnable.kr--random

打开虚拟机连接ssh,查看文件信息。目录下有flag、random和random.c文件,打开random.c。 可以发现程序读取键盘输入作为key,与随机生成的random异或,若为0xcafebabe即可得到flag。 rand()函数:由于rand()函数的特性,每次的随机数都相同,所以只要得到随机数,与0xcafebabe进行异或运算,就可以得到输入的key值。 打开gdb调试并查看main函数汇编代码,找到调用rand()函数的部分: rand()生成随机数存放在eax中,然后

2302_81668703的博客 58

pwnable.kr random

连接ssh random@pwnable.kr -p2222rand()生成一个随机数与key进行异或等于0xdeadbeefrand函数不是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。所以random的值固定的得到random和key的值,注意这里要在一样的系统下测试,不同系统下得到的随机值不同。得到flag...

you_need_me的博客 392
上一篇: DH密钥交换
下一篇: 中山大学招新赛
Maxmalloc
博客等级 码龄8年 12粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值