- 2024-12-22Linux 动态链接原理
1.动态链接的基本概念 在Linux系统中,动态链接是一种共享库的使用方式。它允许多个可执行文件共享同一段库代码,而不是每个可执行文件都包含一份完整的库副本。这样可以大大节省内存空间,并且方便库的更新维护。例如,多个程序都需要使用标准C库中的`printf`函数,如果是静态
- 2024-12-04了解checksec显示的各种参数和保护
Arch:内核(32位/64位)RELRO在Linux系统安全领域数据可以写的存储区就会是攻击的目标,尤其是存储函数指针的区域。所以在安全防护的角度来说尽量减少可写的存储区域对安全会有极大的好处.GCC,GNUlinker以及Glibc-dynamiclinker一起配合实现了一种叫做relro的技术:readonlyrel
- 2024-12-10用CompletableFuture,品怨种码生,写线上BUG,拿C+绩效
引言你是不是也曾在开发中,觉得CompletableFuture这类异步编程的工具能让你高效、优雅地处理并发任务,从而避免线程阻塞,提升系统响应速度?相信很多开发者都曾有过这种理想主义的想法,认为异步编程不仅能优化性能,还能让代码变得简洁优雅。但在实际项目中,有时我们在过度依赖Completa
- 2024-12-08CCIT4020 Introduction to Computer
CCIT4020IntroductiontoComputerProgrammingAssignment3–SectionCGeneralguidelines:Useconciseanddirecttechniques/programcodeswelearninourcourse.Uselessorover-complicatedtechniques/programcodesmaybeignoredorpenalized.Stud
- 2024-10-16GOT-OCR2.0:本地部署基于QWen0.5B大模型的强大OCR服务
这两天大佬团队开源了基于千问大模型OCR项目的视频多次被刷到,各博主对其识别能力也是给予充分的肯定, 作为CV工程师的小编平时工作中OCR的需求也是络绎不绝,如果真如各博主所说是跨时代的产品,那必须也要盘它一盘;github:GitHub-Ucas-HaoranWei/GOT-OCR2.0:Offici
- 2024-09-18General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model
摘要传统的OCR系统(OCR-1.0)越来越无法满足人们对智能处理人造光学字符的需求。在本文中,我们将所有人造光学信号(例如,普通文本、数学/分子公式、表格、图表、乐谱,甚至是几何形状)统称为“字符”,并提出了通用OCR理论以及一个优秀的模型,即GOT,以促进OCR-2.0的到来。GOT拥有5.8亿参
- 2024-08-16ret2csu出题小记
第一次出题,没什么经验,按照https://www.cnblogs.com/bpcat/p/16878676.html这篇文章简单改的代码(这文章讲的还算细,跟着动调就好了)直接抄exp肯定是不行了,多加了几句话导致栈空间有一丢丢偏移,但是影响不大,这里展现下当时卡住的地方卡在jmp的位置了,爆段错误,于是去拿其他
- 2024-08-11pytorch_geometric的Planetoid出现“TypeError: expected np.ndarray (got matrix)”的问题和解决方法
问题和解决方案运行GCN的例子的时候,出现了这个错误:out=torch.from_numpy(out).to(torch.float)TypeError:expectednp.ndarray(gotmatrix)解决方案:在torch_geometric.io.planetoid.py中添加importnumpyasnp,将out=torch.from_numpy(out).to(torch.float)
- 2024-08-11《If I Ain't Got You》
Somepeopleliveforthefortune,有些人为了财富而活,Somepeoplelivejustforthefame,有些人只是为了成名而活,Somepeopleliveforthepoweryeah.有些人为了权利而活。Somepeoplelivejusttoplaythegame,有些人只是为了游戏而活,Somepeoplethinkthantth
- 2024-07-30格式化字符串(summer2024_fmt)
参考博客[参考博客]:https://blog.csdn.net/ysy___ysy/article/details/135700140[参考博客]:https://blog.csdn.net/2402_83422357/article/details/139180404戳此切大佬博客https://blog.csdn.net/Morphy_Amo/article/details/122215773https://blog.csdn.net/song_lee/
- 2024-07-20go_test我使用
go_test一、Test1.使用介绍测试函数以Test开头,只能有一个t*testing.T参数输出:通过*testing.T参数的断言函数检查。执行:运行gotest时自动运行2.用例packagemainimport"testing"funcHello()string{return"Hello,world"}funcTestHello(t*testing.
- 2024-07-20动态链接库的实现原理是什么?
今天简单聊聊动态链接库的实现原理。假设有这样两段代码,第一段代码定义了一个全量变量a以及函数foo,函数foo中引用了下一段代码中定义的全局变量b。第二段代码定义了全局变量b以及main函数,同时在main函数中调用了第一个模块中定义的函数foo。接下来编译器出场,编译器会把这
- 2024-07-16暑期集训ezret(学会看gdb)
64位ida打开并反汇编的main():进入input_person函数:仔细看可以找到一个特别的函数名win,点进去发现是后门:根据ida看出程序的基本逻辑是输入name和age,输出age和name很多时候ida会抽风(bushi),就比如operater=里面的参数没给,不过没关系,我们可以猜(),可以看出input_person里面v11(age)
- 2024-06-09init_array与got劫持——[zer0pts 2020]easy strcmp
只是在顺思路,wp参考了2位大佬文章列表|NSSCTF[Zer0pts2020]easystrcmp分析与加法-CSDN博客题目Die 虚拟机运行一下 没有输入,直接报错退出了IDA 很奇怪啊,就是一个比较从我们运行直接报错来看,我们运行时a1>1这个条件是不成立的我的最初思路就是调试把a1改了或
- 2024-06-01hook的几种方式及原理学习
原文概述对于大型的工程项目,依赖许多人的配合,包含大量不同的代码库与服务,有的我们能够访问程序的源代码,有的可以访问程序的可重定位文件,有的可以访问到可执行文件及其环境,假如我们想在在不同的层面改变或者添加一些逻辑,操作系统、编译器以及程序语言、代码库等都提供了一些机制
- 2024-05-29ctf-pwn 学习前知(1)
学习pwn这个抽象到一定程度的东西,前期的坐牢是一定的,一个题目延申出的新知识也是超多的。所以写一个这个板块记录一下自己学习的东西,或许会有(2),(3)....checksec拿buuctf的test_your_nc为例子可以看到checksec后出现了很多东西Arch:amd64-64-little(程序架构信息,这是一个64位
- 2024-05-19常回家看看之堆溢出
- 2024-05-08buuctf-pwn-ciscn_2019_c_1-ret2libc
检查一下保护情况ida里选项2,3都没有什么重要的信息,直接看选项1发现栈溢出漏洞,不过程序对输入的字符串有一个异或加密,这里可以构造异或后的payload,利用程序来解密,或者可以直接在payload第一位加上'\x00',直接截断payload后面的异或操作用cyclic测一下溢出点,得到88找一下system
- 2024-04-20newstartweek3部分题解
64位利用格式化字符串修改got表例题:newstartweek3putorsystem老规矩先checksec和代码审计:看到开了canary和NX(但是对于这道题的话canary是没有用的),然后源码这边也没有发现有system函数,也没有后门函数,所以我们需要自己在libc里面找,然后就有bin/sh那么我们就只用把got表里
- 2024-04-20堆块的重叠
堆块重叠对堆的了解不是很多,大部分都是自己网上找的资料了解的,以后每一道堆题我都会仔仔细细的写出来。这里先拿一道做示范题目链接:链接:https://pan.baidu.com/s/1HbHkdHbEzt4UIe44gW8uqg提取码:Ch13看保护,pie保护关闭,延迟绑定,got表可以修改64位ida载入我们看看实现的功能