<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hsjdbbsbsn的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hsjdbbsbsn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hsjdbbsbsn]]></copyright><item><title><![CDATA[2024 第十五届蓝桥杯python b组]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/137781356</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/137781356</guid><author>hsjdbbsbsn</author><pubDate>Mon, 15 Apr 2024 15:31:41 +0800</pubDate><description><![CDATA[这次纯裸考，太久没用，类似vecto库很多方法都忘记了，给的绝对值内，a-c=b-d,的条件一分析，其实就是两个方向上对角线上的数，只有1000位，因此用了一个1001的桶即一个list存每一个对角线出现的数量，最后每一个桶中排列组合挑两个数，我按这个思路写，测试用例通过，全部数据不知道会不会超时。每个村民都一个相同的断言，之后的两个人一真话一假话，这题考试的时候没做出来，情况条件判断没写完，没时间了（先写了后面的），分析3的情况下是2n，直接print（2n），但好像刚好除了3的倍数之外都是n？]]></description><category></category></item><item><title><![CDATA[二进制 win32]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/137612173</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/137612173</guid><author>hsjdbbsbsn</author><pubDate>Wed, 10 Apr 2024 21:38:24 +0800</pubDate><description><![CDATA[句柄表：进程的内核对象，如EPROCESS，有句柄表，是用来隔离应用层和内核层的，不能让用户直接操作内核结构体对象的地址（这会直接蓝屏错误），而使用句柄表表示内核对象的地址，在你要使用某个内核对象时，就操作相应的句柄即可。每个进程都有4个g的虚拟分配的空间，但高2g的空间是供内核使用的，是共用的，进程实际可以使用的只有低2g的空间，但也只有在申请时才实际分配。Unicode只是包含所有文字字符的字符集，而不管存储的问题，这样就存在了字符存储所需要的字节数不同的问题。Utf-8的问题在于解析复杂。]]></description><category></category></item><item><title><![CDATA[网络编程：百度api实现地理编码与逆地理编码]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/137085772</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/137085772</guid><author>hsjdbbsbsn</author><pubDate>Wed, 27 Mar 2024 18:45:34 +0800</pubDate><description><![CDATA[由于v3的地理编码时和逆地理编码时的url中的参数不一样，因此要调整代码中访问的params，从address,ak,output变成ak,output,location的形式否则会出现报错，下面三个库的实现也是同理。在本次实验中,我们使用了5个Python库来实现百度地理编码和逆地理编码功能,包括geopy、requests、geocoder、http.client和socket。对于逆地理编码,需要将地理编码方法相应改为逆地理编码方法,并调整输入参数形式(如geocoder库中的列表形式)。]]></description><category></category></item><item><title><![CDATA[汇编初步学习]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136997707</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136997707</guid><author>hsjdbbsbsn</author><pubDate>Sun, 24 Mar 2024 22:41:15 +0800</pubDate><description><![CDATA[DF位也就是从后往前的第10位，当为0时在movs操作是会自动把内存地址相应自动加位，而为1时则为减。利用push pop使用堆栈传参，当想要操作例如add mov时直接用dword ptr ds:[]调用栈中的相应地址。STOS dword ptr ds:[]将al/ax/eax中的值传入【】中的内存地址，默认用edi存。1.堆栈内部使用堆栈存变量时，要在返回前，将变量清除，不然eip指向变量的地址则会报错。2.压入栈中的子函数的变量，要在函数过程结束后pop掉，否则会在栈顶留下垃圾。]]></description><category></category></item><item><title><![CDATA[二进制安全-第四天]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136890879</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136890879</guid><author>hsjdbbsbsn</author><pubDate>Wed, 20 Mar 2024 22:37:04 +0800</pubDate><description><![CDATA[在调试修改后的ret2shellcode的题目时，在本地运行出错，在ctf题目中也会经常遇到远程能打通，本地打不通的情况，特别是调用libc动态链接库的程序，在环境差异的情况下，很有可能会出现。而这一段代码的作用是system所包装的，和system调用sh的作用是一样的。使用的自带函数中，例如printf并不是简单实现的，而是调用写好的存放在系统层的功能，通过动态链接调用。ROP的目的：程序中没有完整的可以调出这样的汇编代码，但有对应的代码片段，用rop执行分离的代码也能达成相同的作用。]]></description><category></category></item><item><title><![CDATA[二进制安全-三]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136824846</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136824846</guid><author>hsjdbbsbsn</author><pubDate>Mon, 18 Mar 2024 22:53:50 +0800</pubDate><description><![CDATA[劫持eip到bss区执行shellcode，因为shellcode是系统读的机器码，无法手写（能手写的都是超级大神），可以从网站上获取，pwntools中也自带了获取shellcode的模块，shellcraft。构造exp：主要部分是开头传入buf2的shellcode由shellcraft获得，加上ljust补足到112字节的垃圾数据加上转换成字节的bss区中的buf2的地址。s的值被传入buf2，buf2再main中不见定义，判断为全局变量，所以位于bss区，没有PIE,bss区没有随机防护。]]></description><category></category></item><item><title><![CDATA[二进制安全学习-最简单的pwn]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136786126</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136786126</guid><author>hsjdbbsbsn</author><pubDate>Sun, 17 Mar 2024 17:43:34 +0800</pubDate><description><![CDATA[nTell you a secret (only smart baby can see it) :\nZmxhZ3tuMHRfZjRzdGVyX3Q2YW5feTB1fQo=\rMaybe I will tell you again when you clever than ELSEpush ......\n'其中的转义字符也输出就把本来被删去的/r前的一段给显示出来时base64编码。写的函数，许多函数在系统内是已经写好的，其中白色部分是写死的。]]></description><category></category></item><item><title><![CDATA[二进制安全-栈基本知识]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136771997</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136771997</guid><author>hsjdbbsbsn</author><pubDate>Sat, 16 Mar 2024 22:52:02 +0800</pubDate><description><![CDATA[一开始进入main函数时先push ebp压入栈中，存储调用main函数的函数的栈帧的栈底位置，然后将esp降低至ebp的位置，向栈中压入定义的变量，此时的操作是将esp也就是栈顶的位置降低，即将调用子函数。先将子函数调用的变量倒序压入自己的栈帧中，call调用子函数，esp降低一个机器字长，为return address记录eip返回地址，进入子函数栈帧，同上，先push压入父函数的ebp位置作记录，再将esp降低至ebp处（一个字长？Local variables：存放局部变量，栈溢出也在此处发生。]]></description><category></category></item><item><title><![CDATA[二进制安全学习 第一天]]></title><link>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136759252</link><guid>https://blog.youkuaiyun.com/hsjdbbsbsn/article/details/136759252</guid><author>hsjdbbsbsn</author><pubDate>Sat, 16 Mar 2024 11:32:53 +0800</pubDate><description><![CDATA[在存储图中没出现的维二两个 x，y为形参，仅在调用时起到传递的作用，在32位系统中，会在创建sum函数的栈帧之前压栈，在64位系统中，因为寄存器空间扩展的很大，因此被放在速度最快的寄存器中，函数用到时直接在寄存器中取用。现代操作系统，全权接管硬件，程序员不能直接操作硬件，只能通过系统的接口调用，例如：在内存中，给进程分配的内存实际为虚拟内存，一个32位系统的4g内存条，可能其中1g是每个程序共用的系统进程的部分，分给每个进程的虚拟内存都为剩下的3g，但进程实际存储不会用完，只会在物理内存上占实际的大小。]]></description><category></category></item></channel></rss>