1 YenKoc

尚未进行身份认证

我要认证

最弱CTFer,博客已搬到博客园去了,csdn不再更新,希望别真香

等级
TA的排名 5w+

逆向总结1

加密与解密这本书感觉理论性还是挺强的,而且比较适合初学人群,学习逆向,感觉还是挺强的,看了这个数据结构这章和海哥讲的差不多吧,特别是全局变量那个知识点。1.全局变量是一个相等于固定硬编码的地址所指向的,这里靠这个来判断是局部还是全局2.虚函数:C++的这个比较恶心,也是看了挺久汇编才明白的,虚函数的地址编译时无法确定,只有在临近运行时才能确定,而且是有一个专门的数组—虚函数地址表来存储虚函数...

2020-04-24 18:23:37

Ha1cyon-CTF 芜湖

感觉自己还是很欠缺的,尤其是C++的逆向,对stl的不熟悉,直接误导我静态分析了。。。然后这种题和平常不同的是没有任何混淆和flag验证,需要的是耐心的分析,在过程中,找到线索,这题还考了base64的隐写,2333,开拓了思维,感谢出题师傅,也和出题师傅交流了很久,这种题十分适合动调,注意中间过程,尤其是寄存器和堆栈的变化。拖入ida,找到了主函数,整体逻辑很清晰。重点说下几个函数,这个函...

2020-04-22 12:51:57

Ha1cyon_CTF-公开赛(wp)

一.babyasm00007FF7A8AC5A50 push rbp 00007FF7A8AC5A52 push rdi 00007FF7A8AC5A53 sub rsp,238h 00007FF7A8AC5A5A lea rbp,[rsp+20h] 00007FF7A8AC5A5F mov r...

2020-04-22 10:44:43

XCTF easyhook

这题感觉主要是考一个动调,学会要观察堆栈和寄存器,以此来找到加密的函数载入ida,开始动调。先F8开始,看看经过哪里,字符串就被加密了,F7单步进去看看。那个标红的地方就是加密函数。然后跳回去的话,有个地方很坑,后面判断长度为21。。。。一开始就已经说明了是19的长度,又看到那个字符串是this_is_not_flag,大概就猜到是个幌子了。。。无视它,直接写脚本跑res=[...

2020-04-20 11:35:48

hfctfwp(re)

1.easy python revering看字节码操作,昂哥直接看直接写exp太强了,我就直接手动写了个源码出来(昂哥永远滴神)arr0=[249,91,149,113,16,91,53,41,8]arr1=[43,1,6,69,20,62,6,44,24,113,6,35,0,3,6,44,20,22,127,60]arr2=[90,100,87,109,86,108,86,105,9...

2020-04-19 19:56:40

buu [MRCTF2020]EasyCpp

上次没写出,这次认真分析了一下,发现自己的调试水平也有了上涨,也看了一些C++逆向的文章,尤其是stl,发现C++的oop还是挺复杂,这题还没考啥虚函数的还行了。一.拖入ida,找到主函数,还是挺容易的int __cdecl main(int argc, const char **argv, const char **envp){ double v3; // xmm0_8 __int...

2020-04-17 10:53:35

XCTF easyGo

拖入ida,发现符号表需要还原一下,载入一个还原符号表的脚本。go这个语言就有点恶心,字符串后面没有反斜杆零,ida识别出来,字符串就会挤在一堆,就很难看,看了某位师傅的wp,觉得这方法不错,就记录下,用winhex打开,根据文件的偏移转换成逻辑地址来看。找到了输入正确flag的提示信息。再查看它的引用,进一步找到关键函数那个是正确的跳转,下面这个肯定就是错误时的跳转了动调,到...

2020-04-16 11:36:00

buu [BJDCTF2020]easyrsa

下载附件是一个py文件,打开之后,发现是常规的rsa,不过有几个函数不知道。这里记录一下,Fraction(a,b) 相当于 a/bDerivative(f(x),x) : 当x='x’时,f(x)的导数值from Crypto.Util.number import getPrime,bytes_to_longfrom sympy import Derivativefrom frac...

2020-04-15 19:36:15

buu [V&N2020 公开赛]strangeCpp

拖入ida,静态调试一下,本来想动调的,发现一直缺dll。没办法,只能头铁,静态找到主函数,然后并没有发现什么,找了半天,没结果,后面也是看了大佬wp,才找到解决方式,感觉这种只能通过动调来找到关键函数,靠这种找字符串的,有点不靠谱,不过这种在没思路的情况下,是真的香。先打印出welcome,后面一堆没啥用的,还有个函数检查cpu数量的。。。。,然后这种没思路的情况,感觉还是从出题人的角度去...

2020-04-15 17:31:22

XCTF reverse_box(idapython)

ida先静态分析,发现有很多a2[1]不知道是什么,就远程动调了一下,发现是我们所输入的字符串,也就是我们所输入的字符串作为索引,通过v4这个数组输出,这题题目的数据漏给了,当时也是一头雾水,后面找了wp,才发现题目漏了条件,就是正确的flag输入后,会输出95eeaf95ef94234999582f722f492f72b19a7aaf72e6e776b57aee722fe77ab5ad9aae...

2020-04-15 15:56:47

XCTF Normal_RSA

这题本来算是很常规的rsa了,下载附件发现有个公钥文件,还有一个加密文件,这种题之前有遇到一次,做法和这个类似,上次那个是用rsa的库,直接解的,这次直接用常规的,好像更简单,记录下模板记事本打开那个公钥文件,放到在线网站上面解开。n是十六进制的,拿去抓换成十进制的数字,然后分解p,q写脚本跑就完事了import rsaimport binasciiimport sysimp...

2020-04-14 23:33:48

DawgCTF wp(re和crypto)

简单写写思路,想看详解的。。我脚本有些丢失了。。师傅请移步。挂了个vpn,算正式打这种国际赛,全是英文。上去打了两天,昨晚晚上划水了一晚上补作业。。。,re那时候写出来三道,Potentially Eazzzy这题是真的坑,不知道是不是我环境问题,本地都过了,服务器死活过不去。。。白给了250分。第三题,讲道理很懵逼,动态进去,不知道里面函数是干啥的。。看了一下午汇编,没结果。。刚刚看了大佬的w...

2020-04-12 20:00:49

2020.4.10个人总结

反调试:了解了一些反调试的api,比如isdebuggerpresent()这个函数,会不断轮询ptraceid来判断是否被调试,然后也看到师傅的博客里,是通过patch或者hook那个函数,修改返回值的方式绕过,虽然没碰到到,但是理论上是可行的。调试器原理:同时也理解了下那些调试器是如何做到调试的,在linux平台下提供了一个ptrace的系统调用,通过传入的参数不同,对被调试的进程有不同...

2020-04-11 00:42:41

CG-CTF simple machine

这题讲道理还是蛮坑的,有些点如果不会的话,会卡死你,然后就是代码有点长,需要有很好的耐心。找到主函数:这里的mmap函数,是一个分配内存的函数,主要是存放文件的,下午也是百度了下才知道,这东西对于文件的存取和共享修改的效率有很高的提高,这里就简要的认为是个分配内存空间的函数,同时360的加固反调试mmap函数会去检测traceid的值,进行反调试,虽然这种绕过也挺简单的。2333二.加...

2020-04-11 00:19:01

CG-CTF Our 16bit wars

一题纯看汇编的题INT 21H, ah为0A时,是输入字符串到缓冲区DS:DX,DX+1地址存放着字符串长度说明了长度为35这里加密是右移3位异或左移5位,告诉了我们加密后的字符串是什么,写个脚本逆向回去就好了。a=[ 0xC9, 0x68, 0x8A, 0xC8, 0x6F, 0x07, 0x06, 0x0F, 0x07, 0xC6, 0xEB, 0x86, 0x6...

2020-04-10 14:54:05

CG-CTF Our 16bit Games

一.放到xp上面跑,发现是一个图形界面的飞机游戏。。。估计是分数到达多少,然后就可以输出flag。打开ida,一脸懵逼,主要这玩意16位,我直接静态调试了发现很多汇编代码,有点懵逼,在最下方的地方,找到了一个jmp指令,然后是INT 21H ,这句汇编搭配Ah的值,可以有不同的效果和作用,AH为2时是输出。说明这一大堆的,就是输出flag的语句,通过flag的格式NCTF开头两个字母,可...

2020-04-10 11:49:45

CG-CTF single

一.拖入ida,先静态分析一下发现有三个函数,点击进去看看a1为0时,当a2[i]为0时,将自身的值赋值到该位置,a1为0时,就不需要动。这三个函数都是在暗示这东西是个数独,每行每列,都有1到9的数字,并且不能重复。。。把之前的数取出来,用在线的数组求解器操作一下同时写个脚本,将之前不是零的地方改成0,就是flagshudu=[0x00, 0x03, 0x00, 0x06, ...

2020-04-10 10:16:40

CG-CTF WxyVM2

一.原本以为要动调,因为出现了这个,函数太长,无法反编译后面才知道这玩意可以在ida的配置文件里面去改,直接改成1024.里面的MAXFUNSIZE改成1024,就可以反编译了,这个长度是超过这个就不让反编译了。二.反编译F5,这个过程有点久,耐心等待伪代码贼长,但是仔细分析,大部分都是没用的代码。。。主要是看这个if得出的,这么一长窜的代码,真有烟无伤,只和这两个字符数组有关...

2020-04-10 00:18:25

CG-CTF 480小时精通C++

一.拖入ida,看看和之前题,有点不一样,不一样在于,这个程序相等于将没加密的字符串,直接打印出来了,但是The Encrypted is 引起了我的注意,所以我去看看有没加密函数,结果还真有,一堆,但是在main方法上面,找到了真正加密的函数,大概就知道这题是考啥了,就是考个patch,有点类似那种无脑爆破,od里面改汇编,直接动态安排一下,汇编级的动态调试,类似od。一堆nop,看...

2020-04-09 21:28:22

IDA 动态调试

感谢南邮,让我把ida动态调试,给搞定了,困扰了很久,之前下的ubuntu的源,好像有问题,ifconfig这个命令一直装不上,突然想起来了我的服务器很久没用了,重装了下系统,换成ubuntu,这里记录一下ida动态调试过程。一.ida动态调试1.先点击这个文件夹2.很多类型,看那个文件是哪个平台的,比如我这里是linux64的,所以将那个linux_server64上传到我服务器那里,...

2020-04-09 21:05:39

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。