Got
  • 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-09-02off by one 改got表
    BUU——npuctf_2020_easyheapoffbyone利用:每次申请chunk程序默认申请一个0x10大小的chunk,用于存自己申请的chunk的大小和地址,正是利用这个地址,将其修改为free_got泄露libc基地址,之后再将free地址修改为system函数,传入"/bin/sh\x00"即可system("/bin/sh")。如何修改:申请两个chu
  • 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-11GOT & PLT 易于理解的个人笔记
    为什么我们用动态链接和GOT表我们知道静态链接就没那么多事,直接把全部要用的函数都绑定在一起,各个变量和函数之间的偏移量当然能算出来。但是这也恰恰是静态链接的缺点,相同的代码段反复调用真是太臃肿了!于是我们决定把常用的库单独拿出来给大家用,我们还知道,.text是不可修改的,
  • 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载入我们看看实现的功能
  • 2024-03-31政安晨:【Keras机器学习实践要点】(十一)—— 编写自己的回调
    目录导言设置Keras回调概述回调方法概述全局方法用于训练/测试/预测的批量级方法时代级方法(仅限培训)基本示例日志的使用self.model属性的使用Keras回调应用示例提前停机,损失最小学习率调度内置Keras回调政安晨的个人主页:政安晨欢迎 
  • 2024-03-29转: ltrace 是如何工作的(2016)
    http://arthurchiao.art/blog/how-does-ltrace-work-zh/strace 是一个系统调用,也是一个信号跟踪器(signaltracer),主要用于跟踪系统调用,打印系统调用的参数、返回值、时间戳等很多信息。也可以跟踪和打印进程收到的信号。在前一篇文章strace是如何工作的 中介绍过, strace 
  • 2024-03-22GOT表和PLT表
    GOT表和PLT表一.引入目地操作系统通常使用动态链接的方法来提高程序运行的效率。在动态链接的情况下,程序加载的时候并不会把链接库中所有函数都一起加载进来,而是程序执行的时候按需加载,如果有函数并没有被调用,那么它就不会在程序生命中被加载进来。这样的设计就能提高程序运行
  • 2024-03-21动态链接的执行过程
    背景:静态链接库一旦链接进去,代码和变量的section都合并了,因而程序运行的时候,就不依赖于这个库是否存在。但是这样有一个缺点:就是相同的代码段,如果被多个程序使用的话,在内存里面就有多份;而且一旦静态链接库更新了,如果二进制执行文件不重新编译,也不随着更新。因而就出现
  • 2024-03-12[Rust] Thread 6: Using channel to receive multi data
    usestd::sync::mpsc;usestd::thread;usestd::time::Duration;fnmain(){let(tx,rx)=mpsc::channel();thread::spawn(move||{letvals=vec![String::from("hi"),String::from("from"),
  • 2024-03-03Go语言精进之路读书笔记第43条——使用testdata管理测试依赖的外部数据文件
    43.1testdata目录Go语言规定:Go工具链将忽略名为testdata的目录。开发者可以在名为testdata的目录下存放和管理测试代码依赖的数据文件,数据文件可作为输入也可作为输出gotest命令在执行时会将被测试程序包源码所在目录设置为其工作目录,可以这样使用f,err:=os.Open("testda
  • 2024-01-25【pwn】axb_2019_fmt32 --格式化字符串漏洞进一步利用
    照例检查程序保护情况堆栈不可执行,再导入ida看一下代码逻辑如上图此处代码有格式化字符串漏洞先找出偏移可以发现偏移是8那么我们可以利用printf泄露出libc地址,如何修改printf_got表为system的地址,然后再传入/bin/sh就可以getshellexp:frompwnimport*fromLibcSearc
  • 2023-12-03【pwn】puts or system? --格式化字符串漏洞泄露libc基址
    还是先看一下保护情况开了canary,接着看主函数逻辑看到这里的代码逻辑,我一开始是想通过printf泄露出canary的值,然后再用ret2libc来打,但是我发现这个libc不好泄露,一般的泄露的思路都是构造ROP,通过puts函数泄露出puts的got表内容,但是我在寻找rdi这个gadget的时候,是找不到的这也