- 博客(195)
- 收藏
- 关注
原创 [网鼎杯 2020 青龙组]singal
在栈中可以找到我们输入的1234567890abcde。输入15个随机字符,1234567890abcde。Ctrl+Shift+M,把数据转换成符号。分析一下switch中每个指令的含义、继续运行回到判断,重复这个过程。跟踪调用read函数的函数。可以得到flag每一位的值。在scanf下面打断点。
2023-11-25 21:56:51
463
原创 [CISCN 2023 初赛]ezbyte
实际着这个关键的操作r12的加密逻辑,是藏在异常处理机制的栈展开过程中的dwarf字节码。xor r13,r13说明r13是0,但是找不到r12的操作代码。看上面的代码,要想跳转到含有yes这一块,需要r13等于r12。从字符串找到%100s,发现下面有个yes。使用这个命令得到ELF文件的信息。找到这段dwarf字节码。yes之前有个jmp。结合官方文档理解意思。
2023-11-18 23:13:07
313
原创 使用x64dbg手动脱UPX壳(UPX4.1.0)
ESP定律就是当只有ESP(RSP)变红,变红就是值发生了改变,这时候找到ESP所指向的内存位置,打一个硬件断点,按下F9运行到停下的位置,这个位置后面一般有一处跳转,完成跳转之后的地方就是OEP(程序真正的入口点)单步运行到此处,发现只有RSP变红,根据ESP定律,进行下面的操作。所谓定律就像墨菲定律,想表达事物规律往往是这样的。打开符号,进入第一个sample.exe。进入后在第一个位置下断点,按下F9运行。本文选用的壳是4.1.0的UPX壳。我们在紧跟的跳转处设断,运行。打好断点后运行,停在了此处。
2023-09-28 17:56:55
1001
原创 pixel2的root过程
首先学会用adb连接手机可以配置在主机Windows和虚拟机上手机打开设置,连续点击版本号进入开发者模式点击进入开发者选项,允许USB调试,连接在电脑上,在手机授权对话框中允许电脑调试连接完成后,输入adb devices查看一下。
2023-09-20 11:43:12
150
原创 [网鼎杯 2020 青龙组]bang 题解
首先你需要一个root机,使用真机或者虚拟机,根据网上的教程刷机并获取root。使用frida-dexdump脱壳,执行成功后会输出脱了壳的文件夹。对应版本的server传送到/data/local/tmp。frida-ps -Ua查看一下正在运行的程序。然后进行以上操作,启动server。我使用真机调试,pixel2。将得到的文件拖入jadx中。此处发现账号密码和flag。在PC端配置frida。
2023-09-20 10:58:49
94
原创 Drozer安装
https://labs.withsecure.com/tools/drozerpip install "pip<21.0" pyOpenSSLpip install "pip<21.0" service_identitypip install "pip<21.0" twistedpip install "pip<21.0" protobuf
2023-09-15 22:07:36
162
原创 [SUCTF2019]SignIn 题解
N是103461035900816914121390101299049044413950405173712170434161686539878160984549。使用在线网站分离得到p,q。使用了RSA加密算法。然后编写脚本进行解密。
2023-09-10 19:22:21
136
原创 [ACTF新生赛2020]usualCrypt 题解
可以知道,这是对于base64加密之后的密文进行了大小写字母转换。整体加密过程是变表base64加密,然后字母大小写转换。使用一款新的反汇编工具,Binary Ninja。跟进一下末尾的sub_401030函数。明显是base64加密,找一下编码表。就是常规base64编码表。跟进data_40e0e4。发现在函数开头有一个函数。进行base64解码即可。
2023-09-10 16:13:56
104
原创 [XSCTF]easyxor
在这个循环里,将异或得到的结果每次减去1,同时在数组里写上1,往后遍历数组。查看,main函数,首先是将输入的数据与key中的字符依次异或。直到异或得到的结果减为0,在数组中写一个0进行标记。最后比较数组是否与r数组相同。
2023-09-10 11:32:45
190
原创 [GKCTF 2021]Crash
观察特征,应该是Go语言,函数没有名字,用脚本恢复符号表(脚本自己去找一个)继续跟进 crypto_des_NewTripleDESCipher。根据这个名字 TripleDES,是3DES加密算法。满足if条件之后执行main_check。把flag分为了四部分,分别进行了加密。unk_552083中存储的就是密文。使用cyberchef进行解密。跟踪字符串找到了key和iv。得到了flag的第一部分。是MD5加密,撞库解密为。
2023-09-08 23:23:48
163
原创 [FlareOn6]Snake 题解
这是是一个后缀为.nes的文件,NES(Nintendo Entertainment System,任天堂娱乐系统)下面有一个与33比较的指令 CMP 0x33,猜测是要蛇吃够33个苹果。CMP #$F0 用于将累加器的值与立即数 0xF0 进行比较。的作用是将存储在内存地址0x26 处的值加载到累加器寄存器中。断在此处 00:C82A:AD 25 00。发现0x25处记录了记录了吃掉苹果的个数。说明0x26位置处的值可能为0xF0。将记录苹果数的内存处改为32。运行一下让蛇吃一个苹果。
2023-08-29 19:52:05
117
原创 [ACTF2020 新生赛]Exec
我们知道管道符号|会将前面命令的结果交给后面命令处理,如果前面命令没有结果,那么会直接执行后面的命令。这个题目可以ping一个网址。
2023-08-29 14:13:30
72
原创 计算机组成原理 笔记
存储体:存储元,存储单元,存储字,存储字长,地址MAR:地址寄存器,用于指明要读/写哪个存储单元。其位数反映存储单元数量MDR:数据寄存器,用于暂存要读/写的数据。
2023-07-23 16:06:06
112
原创 安卓开发学习笔记
Dip/dp(设备独立像素)也可以叫做dp,长度单位,同一单位在不同的设备上有不同的显示效果,固体效果根据设备的密度有关,详细的公式请看下面。px(Pixel像素)也称为像素元素,是作为图像构成的基本单元,单个像素的大小并不固定。Log.d 表示调试信息,可以把程序运行时的变量值打印出来,方便跟踪调试。Resolution(分辨率)是指屏幕的垂直和水平方向的像素数量。对于相同大小,不同分辨率的手机,同DP的组件占屏幕的比例也相同。对于相同分辨率的手机,屏幕越大,同DP的组件占用屏幕比例越小。
2023-07-18 22:00:56
937
原创 CSRF 跨站点请求伪造
跨站点请求伪造,跟XSS攻击一样,存在巨大的危害性攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成1了攻击者所期望的一个操作,比如以你的名义发送邮件,发消息,盗取你的账号,添加系统管理员,甚至于购买商品,虚拟货币转账等。
2023-07-16 20:10:45
185
原创 PHP中的特殊常量
系统常量:系统帮助用户定义的常量,用户可以直接使用常用的几个系统常量PHP_VERSION PHP版本号PHP_INT_SIZE 整型大小PHP_INT_MAX 整型能表示的最大值。
2023-07-15 22:14:27
379
原创 IP,端口信息收集
如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地址。如果知道哪些网站共用这个服务器,就有可能通过此台服务器上其他网站的漏洞来获取服务器权限,进而迂回获取渗透目标的权限,这种技术也称为“旁注”。
2023-07-11 19:26:23
510
原创 [UTCTF2020]babymips 题解
可以看出将输入字符串进行异或加密之后,判断前5位,就是“flag{”,然后进入 sub_4007F0(v5)进行移位加密后判断五位之后的字符。跟进,加密后的字符串。
2023-06-22 22:40:06
462
原创 babycrypt 自己出的第一道逆向题目 WP
动调可以看出,经过base32编码密文会在首部添加M7WGC76B。Base32编码表是RC4加密后存储的,动调得到。先进行了Base32解密,之后是RC4加密。动调得到第二处RC4加密的密钥。之后密文进行RC4加密。
2023-06-20 17:23:24
501
原创 [FlareOn5]FLEGGO 题解
将断点打在此处,动调到此,再次点击sub_C41240(ArgList)函数函数可以进入。仔细观察生成的图片,有个数字,这个数字是字符在flag中的位置,将字符重新排序。判断IronManSucks和word_C44380是否相等,如果相等则返回0。我的IDA在动调之前不能进入sub_C41240(ArgList)函数。感觉将所有文件给出的字符依次拼接起来就是flag。经过验证这个就是密码,而且运行之后得到一张图片。并且给了一个字符,这是第二个文件给出的字符。给了很多文件,我打开第二个。
2023-06-12 23:42:19
351
原创 easy_Maze 题解
Step_2是走迷宫的函数,上面对迷宫进行了初始化,v5存储迷宫,断点打在此处,运行程序,获取迷宫。迷宫的数据是四个字节存储的,将db转换成dd。从左上角沿着一走到右下角的路径就是flag。可以知道这是一个迷宫题。
2023-06-09 21:30:18
504
原创 攻防世界 Mysterious
这是在输入一个正确的字符串之后,对Text字符串进行了一系列拼接操作然后输出。在第一处断点断下来之后,手动Ctrl+N将EIP寄存器改到strcpy的位置。flag的第一部分是输入的前三个字符的数值加1。多试几次会发现前几位的值和输入的值有关系。首先字符串的大小大于6的话会退出程序。我先想到动调获取一下拼接好的字符串。能得到输出的字符串是122xyz。发现不能得到正确的flag。实际上,看判断条件和v4。
2023-06-09 03:36:58
502
逆向工程所用到的一些工具
2022-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人