自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宗泽的博客

心无旁骛为妙

  • 博客(83)
  • 收藏
  • 关注

原创 Toward Vulnerability Detection for Ethereum Smart Contracts Using Graph-Matching Network

随着基于区块链的智能合约在去中心化应用中的蓬勃发展,智能合约的安全问题已经变成了关键问题(critical issue),因为有漏洞的智能合约已经造成了很严重的经济损失。现有的研究已经探索了基于fuzzing、符号执行、形式化验证和静态分析。在这篇论文中,我们提出了两种静态分析方法,叫做ASGVulDetector 和BASGVulDetector,他们分别从源代码和字节码两方面来检测智能合约的漏洞。

2023-05-07 19:30:00 783 3

原创 Order Matters_ Semantic-Aware Neural Networks for Binary Code Similarity Detection

二进制代码相似性检测是计算机安全中的一项重要任务,其目标是在不访问源代码的情况下检测相似的二进制函数。传统的方法通常使用图匹配算法,这种算法速度慢且不准确。最近,基于神经网络的方法已经取得了巨大的成就。首先将二元函数表示为具有手动选择的块特征的控制流图(CFG),然后采用图神经网络(GNN)来计算图的嵌入。虽然这些方法是有效和高效的,但它们无法捕获足够的二进制代码的语义信息。在本文中,我们提出了语义感知神经网络来提取二进制代码的语义信息。

2023-04-12 21:19:26 282

原创 Dll注入

一、DLL注入概述1.简介DLL注入指的是向运行中的其他进程强制插入特定的DLL文件。从技术细节上来讲,DLL注入命令区别于其他进程自行调用LoadLibary()API加载用户指定的DLL文件。DLL注入与一般DLL加载的区别在于,加载的目标进程在自身还是在其他进程,正经的程序谁会去操作其他的进程空间呢?2. 原理DLL注入的工作原理是强制目标程序调用LoadLibary()函数加载dll文件,因此会强制执行DLLMain函数,同时,被注入的DLL拥有目标进程的内存访问权限从而实现一些有用的功能。

2020-10-14 09:37:49 3638

原创 键盘钩子

一 、总述0x1 消息钩子windows向用户提供GUI,它以事件驱动的方式工作。操作系统中借助鼠标,键盘,选择菜单,按钮,以及移动鼠标,改变窗口大小与位置等都属于事件(对此我感受最深的是学QT编程的时候,每个按钮或其他事件都会对应一个槽函数,通过槽函数的调用来实现相应的功能)。发生事件时,OS会把事先定义好的消息发送给相应的程序,应用程序收到消息后会执行相应的操作。所以,敲击键盘时,消息会从os移动到应用程序,所谓的消息钩子,就是在此间偷看这些信息。0x2 windows消息流产生消息输入,消息

2020-10-08 20:18:51 1017

原创 扫雷初步分析

一、程序分析1.寻找关键内存地址这次用到了CE,用CE扫描内存,通过查找不同的时间可以找到一个随时间一直变的内存地址,可以猜想,这个内存地址存放着时间变量,即内存0x100579C储存有时间。用OD在此下断点,可以断在一个看起来比较重要的地方,可以猜想时间每过一秒,会在这里通过setTimer函数来设置时间,再往后依靠这里修改时间,如果1005164不等于0并且,100579c小于999,则时间加一,我们知道了,0x100579c是储存时间的内存,所以这里不难理解–控制游戏时间;那0x1005

2020-09-24 14:28:31 341

原创 关于《逆向工程核心原理》键盘钩子的总结

前言终于学到了钩子这里,来做一个总结正文简介通俗的来说,钩子相当于一个海关上的检查官,拥有检查程序与系统交换信息的检查权限,一旦他发现你携带的信息有问题,他就会做出相应的行动。一般来说,钩子通过dll注入来实现(网上有不用注入的钩子教程,可惜我没成功),程序通过调用setWindowsHookEx函数,来实现钩子程序的注入。问题1. 注入程序卡死,程序无法退出我使用的系统是win10 64位系统,经过多方面搜索,终于确定问题,版本不匹配,dll因为CPU架构不匹配不能注入时,程序会通过Sen

2020-09-17 19:17:27 320

原创 替代密码

替代密码又分为单表替代密码,多表替代密码1. 单表替代密码单表替代密码又称简单替代密码,他只使用一个密文字母表,并且由密文字母表中的一个字母代替明文字母表中的一个字母。单表替代建立了由密文到明文的一对一的映射关系。移位密码就是一种单表替代密码大佬的博客又划分出了加法密码,乘法密码。我觉得加法密码就是移位密码,乘法密码就是栅栏密码。再有就是仿射密码,仿射密码结合加法密码和乘法密码,用一个多项式来进行明文的变换。f(x)=(ax+b) mod m2. 多表替代密码由于单表代替密码只是用一个密

2020-08-25 19:45:24 2259

原创 移位密码

密码学简介这是我以前所不知道的。密码学的基本目的是使两个在不安全信道中通信的人,通常称为Alice和Bob,以一种使他们的敌手Oscar不能明白和理解通信内容的方式进行通信。定义:一个密码体系是满足一下条件的五元组(P,C,K,E,D)P代表所有可能的明文组成的有限集C代表所有可能的密文组成的有限集K代表密钥空间,由所有可能的密钥组成的有限集对于每一个k∈K,都存在一个加密规则ek ∈E和相应的解密规则dk∈D。并且对每对ek :P→C,dk:C→P,满足条件:对每一个明文x∈P,均有dk(

2020-08-25 15:38:19 1976

原创 160个creakme之022

暴力破解先拖进Exeinfope查看,VB写的,没加壳直接用od打开,右键,搜索字符串,可以看到注册成功的字符串跳转到该处,往上找,我们能看到有个跳转,正好把正确结果跳过去,我们把它nop掉,爆破完成算法分析既然是VB程序,那直接拖到VBDecompiler里分析一下,找到按钮事件处可以看到按钮先调用了一个函数,这个函数估计是个关键,再看看这个函数应该是对一个字符串取出好几个字符然后拼接成一个字符串,然后好像是一个比较,我直接在od里定位到字符串操作那。0040362E .

2020-08-18 21:46:46 257

原创 160个creakme之021

前言做了20多个了,以前看大佬的解析比较多,这次自己用od能稍微调一下了,水平有所提升,加油正文暴力破解拖到Exeinfo PE里看看,发现他是Delphi程序,没壳,可以直接Delphidecompiler分析一波在Delphi Decompiler里,可以看到一个按钮事件,可以猜一波,这是关键函数所在点,直接OD打开,跳转到那。往下稍微一拖,可以看到正确弹窗,没错就是这了。从这往上找,可以看到有两个jnz跳转,猜一下,会有两个比较,不对直接跳转跑,所以直接改掉,我改成了jz,毕竟我直

2020-08-17 21:39:33 151

原创 160creakme之020

前言每篇文章前都是吐槽自己懒,哈哈哈,真懒正文脱壳这个软件开始有了壳,不过脱壳不难,直接ESP定律可以找到入口点。接着上LoadPE,找到相应进程,右键,修正镜像大小,再右键,完整转存再用ImportREC进行修复,找到相应进程,修改OEP地址,点击自动搜索,点击获取输入表,,得到输入表的有关信息,再点击修复转存文件,找到我们刚才用LoadPE转存的文件。至此,脱壳完成暴力破解先用DelphiDecompiler分析一下,可以找到按钮事件地址再用OD打开,直接定位到按钮

2020-08-07 22:34:33 175

原创 160个creakme之018

正文这个题确实比不上上一个,有点简单,他没有给密文加密,直接就是一个比较。暴力破解od打开,直接搜字符串,找到正确的字符串,上面有个跳转,改一下跳转,ok判断逻辑逻辑很简单,先判断长度,长度为零表示没有输入,此时会弹窗提醒,长度大于一,会将输入的字符串与他内置的一个字符串相比较这个字符串是直接写在程序里的,直接看...

2020-07-26 21:32:41 129

原创 160creak之017

暴力破解流程分析这个着实比以前几个麻烦了,让人头秃啊。首先,他上来就获取了两次时间,然后,取两次时间之差,如果时间小于5,就正常继续执行,如果大于5,则出现错误提示,这种方法用来检测是否调试器了,既然他检测的是两次时间再取差值,那我们断点直接断在他后面,或者直接忽略他,那不就行啦。再往下走,他取serial字符串,并取得他的长度,如果长度小于五,直接就报错了,所以控制serial长度得大于5.再往下,他又取了字符串长度,并且开始了一个循环接着,他从serial字符串中取了一个字符,

2020-07-25 15:12:45 123

原创 160个Creakme之016

前言不知不觉,又鸽了这么久,不知道我什么时候才能做完,成为大佬…遥遥无期这个题和14题是一样的啊,写14题的时候有点饿,偷了个懒,没写注册机,只暴力破了一下,今天来写注册机…正文直接用VBdecompiler打开,可以看到伪代码,我选取checkit按钮关联的代码Private Sub Command1_Click() '403620 Dim var_2C As TextBox loc_004036BB: var_1C = Text1.Text loc_004036E8: setnz

2020-07-23 20:51:38 175

原创 160个CreakMe之015

前言这个题算是简单的吧,主要是他一开始那个描述,我不认识啊,什么鸟文字,经过搜索才发现他是要求去掉开头的弹窗和找到序列码,不难。去除弹窗[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZgPwOCLJ-1594103403384)(https://s1.ax1x.com/2020/07/07/UkQpRS.png)]用VBcompiler打开,我们可以直接找到这句话,前面就是他的地址,od打开,定位到地址,我们只需要把负责弹窗的语句nop掉就可以了,这里值得注意的是,

2020-07-07 14:32:43 145

原创 算法复习之最优合并问题

问题给定k个排好序的序列s1,s2,…,sk,用2路合并算法将这k个序列合并成一个序列。假设所采用的2路合并算法合并两个长度分别为m和n的序列需要m+n-1次比较。试设计一个算法确定合并这个序列的最优合并顺序,使所需要的总比较次数最少。测试用例:4(序列数)5 12 11 2(序列中的元素数)输出:78(最差情况) 52(最优情况)问题分析需要求最优次数和最差次数,采用贪心求解。求最优次数时每次合并最短的两个,求最差时每次合并最长的两个。仔细想想,这题和霍夫曼编码就是一个事,只不过霍夫曼需

2020-07-01 16:17:09 4964

原创 算法复习之磁带最优储存问题

题目描述设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是Li, 1<= i<= n。这n 个程序的读取概率分别是p1,p2,…,pn,且pi+p2+…+pn = 1。如果将这n 个程序按 i1,i2,…,in 的次序存放,则读取程序ir 所需的时间tr=c*(Pi1Li2+Pi2Li2+…+Pir*Lir)。这n 个程序的平均读取 时间为t1+t2+…+tn。 磁带最优存储问题要求确定这n 个程序在磁带上的一个存储次序,使平均读取时间达到 最小。试设计一

2020-07-01 15:10:20 2409

原创 算法复习之动态规划

前言算法真难!我现在只想及格,千万别让我挂了动态规划原理基本思想将待求解问题分解成若干子问题,然后先求解子问题,再将子问题的解合成原问题的解。步骤分析最优解的结构递归地定义最优解的代价自底向上(?)的计算最优解并保存最优解信息根据第四步求出的最优解信息构造最优解特点将原始问题化为一系列子问题将求解的每个子问题的结果保存在一个表中,需要时直接查表就行。我自己认为这是动态规划最大的特点了,以空间换时间自底向上计算整体问题的解取决于子问题的解与递归分治的区别将结果存入表中

2020-06-24 15:43:05 157

原创 递归与分治算法

前言终于到期末了,平时欠的债现在该还了(哭唧唧),我打算一天一章,快速复习(预习)算法设计与分析,希望我不要挂科啊!!!一、基本概念在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)任何一个可以用计算机求解的问题所需的计算时间都与其规模有关。

2020-06-22 16:32:40 815

原创 160个creak之014

前言这个可比之前几个简单多了,直接做就好了方法一 暴力运行软件,我们可以看到这样的错误信息在Od里面直接搜索字符串,我们可以定位到关键代码,在往上找找,会发现一个跳转,可以越过错误提示,直接跳到正确提示处,直接改跳转,成功。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXZG2vql-1591778805734)(F:\CTF\160crack\014\image-20200610164505198.png)]对了,这个跳转前面还有一个判断,字符串长度大

2020-06-10 16:47:36 142

原创 520表白软件

前言以前仿抖音写了一个表白软件,按钮不停地会动(可以看我以前的博客),总感觉这样太low了,于是我给他升级了一下,功能我觉得还是不错的。虽然我没成功,但我感觉不是我软件的事…功能记得我第一次想当个程序员,是因为一则外国的报道,有个程序员大哥给他女朋友写了款游戏,当他女朋友打通关时,他恰好就拿着钻戒来到女友家,向女友求婚。我一直在考虑,他是怎么知道他女友把游戏打通关了呢?后来,掉了好几根头发后,我想出来了,可以做个触发器(暂且这么叫吧),当她游戏进行到一定程度时,发邮件。我这次将邮件功能加上,你可

2020-05-16 14:25:37 744

原创 160个CreakMe之011

前言昨天菜逼去打了一天网鼎杯,被虐惨了,就苟到了一个密码题,太菜了,继续一天一道。正文这个题着实比之前几个有水平,怪不得都不给他评星星了,菜鸡不会了,只能上网看了看大佬的攻略,发现这个题确实有点难度,注册机我就不写了,训练一下看过程的水平吧暴力破解检测一下,没壳,VB写的,直接拖OD里。看这个字符串,猜测应该是输入对了,这个status会变。搜一下字符串,可以看见很多REGISTRIERT字符串,随便点击进去一个,往上看,上面一个跳转,分析一下,跳转上面那个函数应该是比较函数,直接nop

2020-05-11 22:03:28 205

原创 160个Creakme之010

前言这题竟然三星,明显没有三星题的水平。他喵的就是在前两个题的基础上改的,还没有上一个题有水平。正文由于一个作者,大致是一样的,暴力破解的方法同前面两个,可以去翻一下我前两篇博客,不过他这次是个key加密再和一串字符比较,我们只能改跳转了,无法从寄存器里找到什么有用的信息。接下来分析一下。(本来想偷个懒直接把汇编从OD里复制过来的,结果格式不太好调,算了)还是OD打开,搜素错误字符串,找到程序处,下断点。(当然,找按钮事件来下断点)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接

2020-05-09 17:20:22 153

原创 160个creakme之009

前言成功第二天继续做这个,一会把写的python项目也发博客吧,这样一天发两个博客。继续努力。正文几种方法的开头都一样,就一起说了。首先,拖进Exeinfo查查,没壳,用VB写的。直接拖进OD,搜一下错误字符串直接来到程序处。就这里关键。从这里方法开始分支。暴力1和上一个一样,往上找找,有两个跳转,第一个跳转跳过第二个跳转,而第二个无条件跳转会跳过错误信息。所以我们把上面那个跳转改了,让它没法跳过这个跳转,错误信息自然跳过。OK暴力2这次不nop掉第一个跳转,我们在往上看,

2020-05-08 20:20:28 136

原创 160个creak之008

前言做了这么些,可以发现,每个creakme都可以暴力改跳转破,也可以找逻辑,写注册机在不破坏源程序的情况下来破。也算是一个进步。一天一个creak me。方法一、暴力破解这个是比较简单的了,查一下壳,没壳。直接拖到OD里,搜一下错误信息。来到错误提示所在程序位置,这里就是关键点。在段首下个断点。往上找找,会看见两个跳转,靠下的一个无条件跳转能直接跳过这些错误提示,靠上的一个je跳转...

2020-05-07 17:35:41 243

原创 利用python的turtle表白

前言今天想找个项目练练手,就找到了这个python表白项目,虽然我以前也写过好几个(我以前的博客还有),今天再加一篇。我没有用心形,用了四个泡泡,这样更好写。代码话不多说,上代码import turtle as t t.up()t.goto(-300,0)t.color('black')t.pensize(2)t.down()t.left(40)t.forward(50)...

2020-05-06 17:05:08 1301

原创 【分治算法】大整数乘法

前言最近开了算法导论课,上来就是递归分治,大整数乘法就是分治法的典型案例,通过参考网上书上我终于编程实现了大整数乘法,特此纪念原理由于两个大整数直接相乘太大,所以我们可以将它划分成几个小块分别相乘,最后再加起来,不仅降低了运算难度,还减少了时间复杂度。代码实现#include<iostream>#include<math.h>#include<stdio...

2020-04-21 23:50:52 1593

原创 用python的tkinter制作表白程序

我觉得起这个题目,会让我的这篇博客点击量超过其他所有,哈哈哈。话不多说,开始前言事情的起因还要追溯到几个星期之前,有个同学说他要给女神写个程序,我就突然想到了以前在网上找到的一个表白小程序,现在我台式机里应该还有,就是那种按钮会跳的那种,恰巧这学期我们有python课,顺便巩固一下tkinter的界面编写知识,我就决定用python自己写一个(手动狗头)思路跳出窗口,问她:愿意做我女朋...

2020-04-16 22:03:54 1704 2

原创 RSA学习笔记

前言看了这么久RSA的文章,一直没搞懂,昨天闲着没事认真看了看,明白了很多,我还总结出来了,任何事不是你不会,实在是太懒了!努力一下就没有难的事。前置知识在讲RSA之前,我们还需要理解几个数学知识,对于我这种高数学的不好的人来说…一言难尽啊!!很多东西我只能去被动的记忆或者理解一些浅层的知识,证明就不行了,不过应该没事吧,毕竟不会有人让一个程序员去证明费马小定理吧。互质这个解释起来不难,...

2020-03-04 20:14:07 321 1

原创 python爬虫学习笔记(三)

上一篇介绍了request对象的基本用法,我们可以用创建Request对象的方法来,做更多的事,接下来我再总结一下其他应用。网页请求方式有Get和Post两种(我也没学过,应该是),这一篇,来讲用爬虫实现Get和Post请求。Get请求有点基础的应该知道,Get就请求直接在网址后面加参数,所有的信息就在url里,哦,你没有基础,没事,打开百度,百度搜索就是用的Get请求现在明白了这一点之...

2020-03-03 15:54:28 296 1

原创 python爬虫学习笔记(二)

上一篇介绍了爬虫的基本用法,用来简单的爬取了一个网站,我们直接用网址就访问了一个网站,但这样是很不好的,有的网站这样也进不去,打个比方,就像我们知道某个人的家庭住址,我们想找她的时候直接就闯了进去,也没说我们是谁,也没和他说我们要来找他,这样可以吗?当然不行!所以我们访问网站时还应该把我们伪装一下,伪装成一个浏览器,这样我们就算是个正常用户了。我们怎么来伪装呢?要执行更复杂的操作,我们需要给ur...

2020-03-03 15:53:14 100

原创 python爬虫学习笔记(一)

前言由于我也不是什么专业人士,我也是在学习,这个就是我自己的一个学习笔记,什么爬虫可以做什么,为什么学爬虫我就不再赘述了,总结一点,爬虫用来爬取网页上的东西!python库在python中用到urllib和urllib2,urllib是python原生的一个库,urllib2是python创始人觉得urllib不好使自己又做的。python3将两个库合成了一个urllib库,需要什么东西基本...

2020-03-03 15:51:32 192

原创 图片转字符画

图片转字符画前言学完python后,来找一些项目来提升一下自己,在知乎上看到了图片转字符画,觉得挺好玩的,自己来尝试一下。知乎里挂了个链接,是实验楼,我并没看,自己写的,有兴趣的可以看看1.准备用python来操作图片要用到几个库,python3用PIL,在python2中他叫pillow, python3中只能用PIL,直接用pip命令就可以了下了pip3 install PIL...

2020-03-02 15:53:51 288

原创 6-2 直接插入排序 (10 分)

本题要求实现直接插入排序函数,待排序列的长度1<=n<=1000。函数接口定义:void InsertSort(SqList L);其中L是待排序表,使排序后的数据从小到大排列。类型定义:typedef int KeyType;typedef struct {KeyType *elem; /elem[0]一般作哨兵或缓冲区/int Length;}SqList...

2019-11-13 19:45:41 4645 1

原创 6-1 分离链接法的删除操作函数 (20 分)

试实现分离链接法的删除操作函数。函数接口定义:bool Delete( HashTable H, ElementType Key );其中HashTable是分离链接散列表,定义如下:typedef struct LNode *PtrToLNode;struct LNode {ElementType Data;PtrToLNode Next;};typedef PtrToLNod...

2019-11-13 19:44:26 1902 1

原创 PTA-6-2 是否二叉搜索树 (25 分)

本题要求实现函数,判断给定二叉树是否二叉搜索树。函数接口定义:bool IsBST ( BinTree T );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree...

2019-11-11 19:59:22 2225

原创 CRC校验算法

0X1 CRC概念CRC,即循环冗余校验算法。是目前使用的最古老的校验算法(用于校验文件完整性,一般不用于加密,毕竟CRC是一种HASH算法,不可逆),将CRC加密生成的数字加在原数据之后,形成新的新的数据。一般来说,循环冗余校验的值都是32位的整数。由于本函数易于用二进制的电脑硬件使用、容易进行数学分析并且尤其善于检测传输通道干扰引起的错误,因此获得广泛应用。0X2 基本原理在一个p位的...

2019-11-11 16:26:21 3144

原创 7-1 根据后序和中序遍历输出先序遍历 (25 分)

本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式:在一行中输出Preorder:以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。输入样例:72 3 1 5 7 6 4...

2019-10-14 20:41:14 2187

原创 10.11 XCTF IgniteMe

一天一道逆向题,加油这道题不算难,主要还是在算法上,IDA打开,先判断前四位,再给后面的信息加密,可以看出sub_4011C0()是那个关键函数,其中可能有加密,他将大写转小写 ,小写转大写,再进行异或加密,直接写Python脚本,很快解出s="GONDPHyGjPEKruv{{pj]X@rF"k=[0x0D,0x13,0x17,0x11,0x02,0x01,0x20,0x1D,...

2019-10-11 17:15:36 145

原创 7-2 输出全排列 (20 分)

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。输入格式:输入给出正整数n(<10)。输出格式:输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a​1​​ ,a​2​​ ,⋯,a​n​​ 排在序列b​1​​ ,b​2​​ ,⋯,b​n​​ 之前,如果存在k使...

2019-10-11 14:15:46 6514 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除