[羊城杯 2020]easyre
摘要: 进ida ,三个加密,最后判定 第一个base64 第二个13位为单位换位置 第三个凯撒加密,带上数字 wp import base64 s = 'EmBmP5Pmn7QcPU4gLYKv5QcMmB3PWHcP5YkPq3=cT6QckkPckoRG' s1 = '' for i in s: if
10
0
0
[FlareOn6]Overlong
摘要: 查壳,32位,无壳 进IDA 一个处理函数,还有一个弹窗,运行一下看看弹窗 然后看看加密函数和加密的字符 加密函数进去就是处理a3(28)次字符 但是点进去402008这个数组发现他的实际长度很长,肯定是远远大于28 结合一下return i,发现主函数就是把text[28]变成0,把字符串给截断了
5
0
0
[GWCTF 2019]xxor
摘要: 64位,进ida 第一个for循环,输入六个32位字符串,转换成整数,存到v6数组 第二个for循环,函数是把低位和高位分成了两个dword,就是在一个循环中一下处理了两个数据(两个32位数据在64位数组中) 然后看看这个unk_601060,32位对齐,所以里面的数据就是(2,2,3,4) 接下来
7
0
0
[WUSTCTF2020]Cr0ssfun
摘要: 64位,进ida 没啥重要的,主要是check函数等于1才能跳出 后面是一个函数 可以看到都是数组,后面还有几个这样的函数,就不都截图了,直接上EXP吧 a1 = 33*[0] a1[1] = 99 a1[25] = 64 a1[27] = 101 a1[4] = 50 a1[17] = 114 a
14
0
0
[buuctf pwn]warmup_csaw_2016
摘要: checksec一下,64位,没开栈溢出保护,可以利用 进入ida,有个gets能利用,然后v5的大小是64 然后看见一个40060D函数,是可以利用的system函数 所以用64+8填满缓冲区和rbp,然后接400611这个地址 from pwn import * p=remote('node5.
25
0
0
[buuctf pwn]rip
摘要: 先checksec一下,64位,没开栈溢出保护 进ida看一下,有个gets,s是15个字符 然后还有另一个fun()函数 现在我们就可以利用栈溢出 用15个字符先填满函数缓冲区,然后用8个字符(64位)填满缓冲区下面的rbp区域,再下面就是返回地址了,我们把它填成system命令的地址0x4011
20
0
0
[FlareOn4]IgniteMe
摘要: 无壳,32位 先进入ida,可以看到start函数,重要的就是4010F0()和if判断里的401050() 先进入4010F0 其中的一个函数,表示的是获取字符串长度(遇到null字符就返回i) 后面就是将字符写入byte_403078这个数组 接下来看401050(),可以看到获取长度后,执行了
14
0
0
buu Youngter-drive
摘要: 查壳,有壳,upx脱壳(upx.exe -d ) 进ida看主函数 又是这种粉色的没见过的函数,速查 CreateMutexW可以创建或打开命名的或未命名的互斥体对象。 简单来说就是后面的多线程同时只会同时运行一个线程 CreateThread就是创建线程来运行 CloseHandle就是关闭线程
8
1
0
[WUSTCTF2020]level3
摘要: 拖入ida,是一个base64串,但是用工具还原不了 猜测是密钥变了,此时看到了另一个函数,这个函数改变了base64密钥 写个脚本给他运行一下,后面是改完的key和输出结果 import base64 a = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopq
15
0
0
数据类型
摘要: 数据类型 C语言数据类型 学习数据类型三要素:宽度、格式、作用范围(作用域) 整数类型 char 8bits 1字节 short 16bits 2字节 int 32bits 4字节 long 32bits 4字节 在下图中我们可以看到 char即是byte,short即word,int即dword(
7
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起