网安
Whale_XM
这个作者很懒,什么都没留下…
展开
-
Dll注入
一、DLL注入概述1.简介DLL注入指的是向运行中的其他进程强制插入特定的DLL文件。从技术细节上来讲,DLL注入命令区别于其他进程自行调用LoadLibary()API加载用户指定的DLL文件。DLL注入与一般DLL加载的区别在于,加载的目标进程在自身还是在其他进程,正经的程序谁会去操作其他的进程空间呢?2. 原理DLL注入的工作原理是强制目标程序调用LoadLibary()函数加载dll文件,因此会强制执行DLLMain函数,同时,被注入的DLL拥有目标进程的内存访问权限从而实现一些有用的功能。原创 2020-10-14 09:37:49 · 4133 阅读 · 0 评论 -
键盘钩子
一 、总述0x1 消息钩子windows向用户提供GUI,它以事件驱动的方式工作。操作系统中借助鼠标,键盘,选择菜单,按钮,以及移动鼠标,改变窗口大小与位置等都属于事件(对此我感受最深的是学QT编程的时候,每个按钮或其他事件都会对应一个槽函数,通过槽函数的调用来实现相应的功能)。发生事件时,OS会把事先定义好的消息发送给相应的程序,应用程序收到消息后会执行相应的操作。所以,敲击键盘时,消息会从os移动到应用程序,所谓的消息钩子,就是在此间偷看这些信息。0x2 windows消息流产生消息输入,消息原创 2020-10-08 20:18:51 · 1131 阅读 · 0 评论 -
扫雷初步分析
一、程序分析1.寻找关键内存地址这次用到了CE,用CE扫描内存,通过查找不同的时间可以找到一个随时间一直变的内存地址,可以猜想,这个内存地址存放着时间变量,即内存0x100579C储存有时间。用OD在此下断点,可以断在一个看起来比较重要的地方,可以猜想时间每过一秒,会在这里通过setTimer函数来设置时间,再往后依靠这里修改时间,如果1005164不等于0并且,100579c小于999,则时间加一,我们知道了,0x100579c是储存时间的内存,所以这里不难理解–控制游戏时间;那0x1005原创 2020-09-24 14:28:31 · 400 阅读 · 0 评论 -
关于《逆向工程核心原理》键盘钩子的总结
前言终于学到了钩子这里,来做一个总结正文简介通俗的来说,钩子相当于一个海关上的检查官,拥有检查程序与系统交换信息的检查权限,一旦他发现你携带的信息有问题,他就会做出相应的行动。一般来说,钩子通过dll注入来实现(网上有不用注入的钩子教程,可惜我没成功),程序通过调用setWindowsHookEx函数,来实现钩子程序的注入。问题1. 注入程序卡死,程序无法退出我使用的系统是win10 64位系统,经过多方面搜索,终于确定问题,版本不匹配,dll因为CPU架构不匹配不能注入时,程序会通过Sen原创 2020-09-17 19:17:27 · 392 阅读 · 0 评论 -
移位密码
密码学简介这是我以前所不知道的。密码学的基本目的是使两个在不安全信道中通信的人,通常称为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 · 2074 阅读 · 0 评论 -
160个creakme之022
暴力破解先拖进Exeinfope查看,VB写的,没加壳直接用od打开,右键,搜索字符串,可以看到注册成功的字符串跳转到该处,往上找,我们能看到有个跳转,正好把正确结果跳过去,我们把它nop掉,爆破完成算法分析既然是VB程序,那直接拖到VBDecompiler里分析一下,找到按钮事件处可以看到按钮先调用了一个函数,这个函数估计是个关键,再看看这个函数应该是对一个字符串取出好几个字符然后拼接成一个字符串,然后好像是一个比较,我直接在od里定位到字符串操作那。0040362E .原创 2020-08-18 21:46:46 · 337 阅读 · 0 评论 -
160个creakme之021
前言做了20多个了,以前看大佬的解析比较多,这次自己用od能稍微调一下了,水平有所提升,加油正文暴力破解拖到Exeinfo PE里看看,发现他是Delphi程序,没壳,可以直接Delphidecompiler分析一波在Delphi Decompiler里,可以看到一个按钮事件,可以猜一波,这是关键函数所在点,直接OD打开,跳转到那。往下稍微一拖,可以看到正确弹窗,没错就是这了。从这往上找,可以看到有两个jnz跳转,猜一下,会有两个比较,不对直接跳转跑,所以直接改掉,我改成了jz,毕竟我直原创 2020-08-17 21:39:33 · 215 阅读 · 0 评论 -
160creakme之020
前言每篇文章前都是吐槽自己懒,哈哈哈,真懒正文脱壳这个软件开始有了壳,不过脱壳不难,直接ESP定律可以找到入口点。接着上LoadPE,找到相应进程,右键,修正镜像大小,再右键,完整转存再用ImportREC进行修复,找到相应进程,修改OEP地址,点击自动搜索,点击获取输入表,,得到输入表的有关信息,再点击修复转存文件,找到我们刚才用LoadPE转存的文件。至此,脱壳完成暴力破解先用DelphiDecompiler分析一下,可以找到按钮事件地址再用OD打开,直接定位到按钮原创 2020-08-07 22:34:33 · 261 阅读 · 0 评论 -
160个creakme之018
正文这个题确实比不上上一个,有点简单,他没有给密文加密,直接就是一个比较。暴力破解od打开,直接搜字符串,找到正确的字符串,上面有个跳转,改一下跳转,ok判断逻辑逻辑很简单,先判断长度,长度为零表示没有输入,此时会弹窗提醒,长度大于一,会将输入的字符串与他内置的一个字符串相比较这个字符串是直接写在程序里的,直接看...原创 2020-07-26 21:32:41 · 161 阅读 · 0 评论 -
160creak之017
暴力破解流程分析这个着实比以前几个麻烦了,让人头秃啊。首先,他上来就获取了两次时间,然后,取两次时间之差,如果时间小于5,就正常继续执行,如果大于5,则出现错误提示,这种方法用来检测是否调试器了,既然他检测的是两次时间再取差值,那我们断点直接断在他后面,或者直接忽略他,那不就行啦。再往下走,他取serial字符串,并取得他的长度,如果长度小于五,直接就报错了,所以控制serial长度得大于5.再往下,他又取了字符串长度,并且开始了一个循环接着,他从serial字符串中取了一个字符,原创 2020-07-25 15:12:45 · 167 阅读 · 0 评论 -
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 · 236 阅读 · 0 评论 -
160个CreakMe之015
前言这个题算是简单的吧,主要是他一开始那个描述,我不认识啊,什么鸟文字,经过搜索才发现他是要求去掉开头的弹窗和找到序列码,不难。去除弹窗[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZgPwOCLJ-1594103403384)(https://s1.ax1x.com/2020/07/07/UkQpRS.png)]用VBcompiler打开,我们可以直接找到这句话,前面就是他的地址,od打开,定位到地址,我们只需要把负责弹窗的语句nop掉就可以了,这里值得注意的是,原创 2020-07-07 14:32:43 · 198 阅读 · 0 评论 -
160个creak之014
前言这个可比之前几个简单多了,直接做就好了方法一 暴力运行软件,我们可以看到这样的错误信息在Od里面直接搜索字符串,我们可以定位到关键代码,在往上找找,会发现一个跳转,可以越过错误提示,直接跳到正确提示处,直接改跳转,成功。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXZG2vql-1591778805734)(F:\CTF\160crack\014\image-20200610164505198.png)]对了,这个跳转前面还有一个判断,字符串长度大原创 2020-06-10 16:47:36 · 194 阅读 · 0 评论 -
160个CreakMe之011
前言昨天菜逼去打了一天网鼎杯,被虐惨了,就苟到了一个密码题,太菜了,继续一天一道。正文这个题着实比之前几个有水平,怪不得都不给他评星星了,菜鸡不会了,只能上网看了看大佬的攻略,发现这个题确实有点难度,注册机我就不写了,训练一下看过程的水平吧暴力破解检测一下,没壳,VB写的,直接拖OD里。看这个字符串,猜测应该是输入对了,这个status会变。搜一下字符串,可以看见很多REGISTRIERT字符串,随便点击进去一个,往上看,上面一个跳转,分析一下,跳转上面那个函数应该是比较函数,直接nop原创 2020-05-11 22:03:28 · 249 阅读 · 0 评论 -
160个Creakme之010
前言这题竟然三星,明显没有三星题的水平。他喵的就是在前两个题的基础上改的,还没有上一个题有水平。正文由于一个作者,大致是一样的,暴力破解的方法同前面两个,可以去翻一下我前两篇博客,不过他这次是个key加密再和一串字符比较,我们只能改跳转了,无法从寄存器里找到什么有用的信息。接下来分析一下。(本来想偷个懒直接把汇编从OD里复制过来的,结果格式不太好调,算了)还是OD打开,搜素错误字符串,找到程序处,下断点。(当然,找按钮事件来下断点)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接原创 2020-05-09 17:20:22 · 185 阅读 · 0 评论 -
160个creakme之009
前言成功第二天继续做这个,一会把写的python项目也发博客吧,这样一天发两个博客。继续努力。正文几种方法的开头都一样,就一起说了。首先,拖进Exeinfo查查,没壳,用VB写的。直接拖进OD,搜一下错误字符串直接来到程序处。就这里关键。从这里方法开始分支。暴力1和上一个一样,往上找找,有两个跳转,第一个跳转跳过第二个跳转,而第二个无条件跳转会跳过错误信息。所以我们把上面那个跳转改了,让它没法跳过这个跳转,错误信息自然跳过。OK暴力2这次不nop掉第一个跳转,我们在往上看,原创 2020-05-08 20:20:28 · 161 阅读 · 0 评论 -
160个creak之008
前言做了这么些,可以发现,每个creakme都可以暴力改跳转破,也可以找逻辑,写注册机在不破坏源程序的情况下来破。也算是一个进步。一天一个creak me。方法一、暴力破解这个是比较简单的了,查一下壳,没壳。直接拖到OD里,搜一下错误信息。来到错误提示所在程序位置,这里就是关键点。在段首下个断点。往上找找,会看见两个跳转,靠下的一个无条件跳转能直接跳过这些错误提示,靠上的一个je跳转...原创 2020-05-07 17:35:41 · 291 阅读 · 0 评论 -
RSA学习笔记
前言看了这么久RSA的文章,一直没搞懂,昨天闲着没事认真看了看,明白了很多,我还总结出来了,任何事不是你不会,实在是太懒了!努力一下就没有难的事。前置知识在讲RSA之前,我们还需要理解几个数学知识,对于我这种高数学的不好的人来说…一言难尽啊!!很多东西我只能去被动的记忆或者理解一些浅层的知识,证明就不行了,不过应该没事吧,毕竟不会有人让一个程序员去证明费马小定理吧。互质这个解释起来不难,...原创 2020-03-04 20:14:07 · 364 阅读 · 1 评论 -
CRC校验算法
0X1 CRC概念CRC,即循环冗余校验算法。是目前使用的最古老的校验算法(用于校验文件完整性,一般不用于加密,毕竟CRC是一种HASH算法,不可逆),将CRC加密生成的数字加在原数据之后,形成新的新的数据。一般来说,循环冗余校验的值都是32位的整数。由于本函数易于用二进制的电脑硬件使用、容易进行数学分析并且尤其善于检测传输通道干扰引起的错误,因此获得广泛应用。0X2 基本原理在一个p位的...原创 2019-11-11 16:26:21 · 3263 阅读 · 0 评论 -
Reversing.kr-Ransomware
打开后,发现是乱码,这是个悲伤的故事。。再查一下壳,有壳,直接上脱壳机,可以把壳给脱掉,接着放进IDA里,发现还不太行,F5不管用了,ida提示文件太大,没法反汇编。![在这里插入图片描述](https://img-blog.csdnimg.cn/20190807164903278.png仔细看一下主函数,有大量的无用的代码,花指令。直接写IDC脚本给nop掉,结果还是不行,再找找...原创 2019-08-07 17:02:01 · 419 阅读 · 0 评论 -
MOCTF-跳跳跳
下载文件,od载入运行起来,发现要求输入但是我们也不会猜啊,直接右键 中文搜索引擎-》搜索ASCII,复制下地址,进入到输入的位置,直接改地址,跳转过去得到ZHUtcF8xc19FYVN577yB,猜测是base64加密得到flag:moctf{du-p_1s_EaSy!}...原创 2019-04-21 21:42:28 · 311 阅读 · 1 评论 -
RC4加密方式及代码实现
定义RC4是一种流密码,通过明文流逐位加密产生密文。同时,他是一种对称密码,加密解密使用同一个密钥,下面这幅图,可以很好的说明RC4这样的流密码的加密过程。原理RC4加密的原理主要分三步:初始化S和TS=[]T=[]for i in range(256): S.append(i) T[i]=K[i%len(K)]初始化排列S for i in range(256...原创 2019-09-11 18:31:00 · 2217 阅读 · 0 评论 -
Tea加密算法
简介TEA算法由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明。它是一种分组密码算法,其明文密文块为64比特,密钥长度为128比特。TEA算法利用不断增加的Delta(黄金分割率)值作为变化,使得每轮的加密是不同,该加密算法的迭代次数可以改变,建议的迭代次数为32轮。QQ使用此加密技术,加密轮数为16轮。加密算法实现原理Tea算法是一种分组加密...原创 2019-09-07 18:44:59 · 7297 阅读 · 0 评论 -
脱壳方法总结
一、单步跟踪法 脱壳的方法有很多,先来讲脱壳方法中最基础的单步跟踪法。单步跟踪法就是利用OD的单条指令执行功能,从壳的入口一直执行到OEP,最终通过这个OEP将原程序dump出来。然当,在单步跟踪的时候需要跳过一些不能执行到的指令。 使用单步跟踪法追踪OEP的常见步骤: 1、用OD载入待脱壳文件,如果出现压缩提示,选择“不分析代码”; 2、向下单步跟踪,实现向下的跳转; 3、遇...转载 2019-06-09 23:25:58 · 9432 阅读 · 2 评论 -
Reversing - Easy Crack
1.od打开,首先右键搜索字符定位关键字‘congratulation!!’,应该意识到,程序成功运行后,应该会走到这一步,点进去。2.向上断点查看,会看到一个call和一个cmp语句,首先,将一个字符与‘ox61’,即‘a’比较,相等即继续往下走,确定一个字符‘a’,改下面的jnz语句,单步执行,再往下发现字符串‘5y’‘5y’与我输入的字符串(12356789)一起出现,可...原创 2019-05-30 23:31:10 · 183 阅读 · 0 评论 -
MOCTF-misc
我可是黑客直接用notepad+打开,可直接发现flag假装安全下载图片,什么也看不出来,用010editor打开翻翻,会看到“flag.txt”,猜测可能是图片里夹了东西。拖到kali虚拟机里,binwalk试一下,果然继续foremost,可以分出一个zip文件,打开看看,果然有flag.txt,不过有密码…010editor打开,发现伪加密,将14 00 09 改为14 00 ...原创 2019-05-06 22:40:05 · 364 阅读 · 0 评论 -
MOCTF-暗恋的苦恼
看到题目,立即激发了单身狗的斗志,十分想破了他。IDA打开找到main函数,F5查看伪代码一层层找进去,最终来到加密算法处;经过分析,该算法现将密钥,明文转化为大写,密钥每位减65,得出一个数,明文行对应的位置减去该数,得到密文下面是解密算法得到明文 iloveyoutoo...原创 2019-04-23 22:25:43 · 209 阅读 · 0 评论 -
MOCTF-crackme2
IDA打开,找到main函数,F5查看伪代码一步步进去,可以看到这么一个操作直接上python代码解出一串数77486572655f30735f666c4167 仔细看看,Hex编码解出flag...原创 2019-04-25 20:05:23 · 185 阅读 · 0 评论 -
MOCTF-crackme1
下载文件,ida打开,找到主函数,F5查看伪代码,用python还原计算过程,key="2410488"key=list(key)a=len(key)flag=[]for i in range(a): flag.append(((2*ord(key[i])-96)/4+3)%10)print(flag)得到flag...原创 2019-04-25 19:38:38 · 251 阅读 · 0 评论 -
base64的加密与解密
前言经过多方面查找后,以及好几天的努力,才完成了base64的编码与解码工作。水平有限,代码有些繁琐,希望大家批评指正。原理base64的索引表-base64的编码都是按字符串长度,以每3个8bit的字符为一组,-然后针对每组,首先获取每个字符的ASCII编码,-然后将ASCII编码转换成8bit的二进制,得到一组3*8=24bit的字节-然后再将这24bit划分为4个6bit的字...转载 2019-02-23 18:43:26 · 601 阅读 · 0 评论 -
由base64加密解密程序的分析看IDA,OD的使用
IDA打开IDA首先会看到那标志性的笑容打开文件,会看到这样的界面左边是函数界面,列出程序里定义或调用的函数;右边是程序(汇编语言)界面,可以在文本视图(text view)、图表视图(graph view)、路径视图(proximity view)之间切换。Hex View 十六进制窗口Imports 导入函数窗口Struceures 结构体窗口Exports 导出函数窗口E...转载 2019-02-27 17:51:15 · 1085 阅读 · 0 评论 -
Reversing -Easy keygen
开始便提示你输入name,接着又是serial;题目附带的文件显示,你需要找到指定serial下的name参数直接IDA打开,定位到主函数,看来确实“easy”,直接放解码脚本value=[16,32,48]name=[]serial='5B134977135E7D13'step=2sss=[serial[i:i+step] for i in range(0,len(seri...原创 2019-06-03 21:00:30 · 196 阅读 · 0 评论 -
Reversing.kr -Replace
这道题乍一看很难,做起来也不简单。。。一开始随便试试,他会自己崩溃,我也很崩溃。od打开它,因为他有个wrong,猜想正确的时候会有correct,所以直接搜一下,还真有,双击嗲点进去,在此断点。上面有个getdlgitemint函数,因为只能输数字,猜测这就是被调用的输入函数,在这里断一下。然后F8单步过,到0040106C处,他会跳转到00404690处,在往后走,会来到00...原创 2019-07-23 21:30:27 · 191 阅读 · 0 评论 -
i春秋-网络与信息安全专项赛部分题目write up
逆向flat进入IDA分析,找到主函数,F5查看伪代码里面存在好几个while循环和if判断,而且数值特别大。再往下看,下面还会输出“what a shame!!!”,意思是好可惜啊,可以判断,如果输出这句话,就说明我们错了,所以,通过上面的条件将这句话跳过去。可以看出来,当if(v4&1)成立时,v5会重新赋值,v16也会变,不满足下面的判断,执行“break”,从而跳过这...原创 2019-08-16 10:19:07 · 1050 阅读 · 6 评论 -
熊猫烧香病毒分析
参考:姜晔老师的病毒分析一.行为分析1.在运行病毒前,先打开任务管理器看看,在运行代码后,任务管理器会自动关掉,且无法再打开。在dos命令行下,使用tasklist命令,可查看当前进程。发现可以进程spoclsv.exe,可以推断一下,这就是病毒打开的进程.输入命令taskkill /r /im pid可以杀死该进程。2.打开进程管理工具process monitor,在筛选器中...原创 2019-08-20 22:13:30 · 678 阅读 · 0 评论 -
格式化字符串漏洞学习笔记
参考:CTFwiki0x1 原理printf等格式化输入输出的语句,在缺少某些变量时,会出现的错误。当输出语句为printf(“color %s,age: %d,s:%4.2lf”,“red”,12,3.14)时,会对应输出相应的内容,但是如果没有输入对应的数值,printf语句就会因为没有相应的参数输出而去解析栈上存储格式化字符串地址上面的三个变量,并分别将其解析为对应的字符串对...原创 2019-08-19 21:40:51 · 263 阅读 · 0 评论 -
z3约束器学习笔记
0X1 下载pip install z3-solver0X2 基本语法solver(),创建一个解的对象。eg: s=solver()add(),为解增加一个限制条件s.add(条件)check(),检查解是否存在,如果存在,会返回"sat"eg: s.check()if s.check()==sat: ...modul(),输出解得结果eg:...原创 2019-08-19 21:27:05 · 1475 阅读 · 0 评论 -
Reversing.kr-Direct3D_FPS
这是一个射击游戏,看上去不好玩,画面粗糙,差评,但中间的小姐姐照片挺漂亮的,打这些蛋,一开始我也没打死他们,但你接触到他们会死,就Game over了,直接拖到IDA里,调出字符串窗口,可以看见游戏结束的那句话,再往下找,还会看见一句game clear!猜测他和结果有关,点进去,查看交叉列表,F5查看伪代码result是一个指针,一开始指向409194这个位置,while循环判断...原创 2019-08-06 13:13:46 · 212 阅读 · 0 评论 -
abex' creak me#1
书上例题之一,不算太难,和160个crackme前几个差不多。破解起来不难,不过可能会找不到资源,挂上从别人那看来的链接下载链接开始破解打开是这个东西,看不懂,有点蒙,无所谓了,继续点然后就是这个东西,还是看不懂,可能是个什么驱动,,od打开可以看到,清楚地看到两个MessageBoxA调用,再往下看,还有一个MessageBoxA的调用,再看看内容,第一个是开始界面,第二个是错...原创 2019-07-26 19:03:28 · 458 阅读 · 0 评论 -
Reversing.kr -position
一个MFC做的文件,看要求,又是给出serial要求name。IDA打开,搜索字符串,然而并不能搜到什么东西;再od打开,搜索字符串,可以找到‘correct’,‘wrong’等字符串,通过这些地址在IDA里定位到一个函数。通过这可以看出,关键函数-sub_401740,直接双击进入,ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,A...原创 2019-08-03 21:18:46 · 212 阅读 · 0 评论