- 博客(184)
- 资源 (1)
- 收藏
- 关注
原创 83:Whitzard OJ逆向-Dont Crack It
这道题我也是很懵,不知道怎么拿到flag,也找不到writeup,求大佬指点。先查壳,UPX,直接-d脱衣服。可以猜出这两个函数。这个是加密函数,刚开始还傻傻的分析了一下sub_401a29,里边超多代码,后果断放弃,后来再看了看,发现这个函数是独立的,不受我们输入的影响,所以直接gdb调试dump内存。 命令: b *0x?????? x /16x 0x?????然后...
2020-03-03 23:08:46 298 3
原创 82:Whitzard OJ逆向-Real packer1
ASpack壳,直接工具脱掉。看伪代码。这段代码是16进制转10进制的。然后看关键函数。程序主要是将3个输入8一共24位,6位分一组变成4个输出,所以很明显是base64加密。这里换了加密表,跑脚本。import base64s1 = '373435323330313E3F3C3D3A3B383926272425222320212E2F2C171415121310111E1F1C1...
2020-03-02 22:43:09 306
原创 81:Whitzard OJ逆向-Real packer2
这是我的逆向启蒙题,第一次做的时候分析了半天,这次看了一下就大概懂了。查壳是UPX,直接UPX -dIDA分析。进入函数看看。就是根据输入的值作为偏移,然后取出偏移的地址中的值,这些值组合到一起是DDCTF{reverseME}写脚本s = [0x7E, 0x7D, 0x7C, 0x7B, 0x7A, 0x79, 0x78, 0x77, 0x76, 0x75, 0x74, 0x73...
2020-03-01 20:45:50 325
原创 80:Whitzard OJ逆向-Introduce to packing
IDA载入找不到关键代码,估计被加密了。通过找入口点确定函数从哪入口。可以看到入口点在nop处,可以发现从check到nop这段被异或加密了,练习IDA脚本的时间到了。start = 0x80484fbend = 0x80485fafor i in range(start, end): ida_bytes.patch_byte(i, ida_bytes.get_byte(i)^0...
2020-02-29 21:07:59 176
原创 79:i春秋战役-奇怪的安装包
拿到题OD分析了好长时间,根本不知道该怎么做,果断放弃。好菜,找不到工作,唉后来知道是用nsis做的安装程序,其实exeinfo工具可以查到。直接百度百科就有NSIS的介绍。 NSIS(Nullsoft Scriptable Install System)是一个开源的 Windows 系统下安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。这如其名字所指出的那样,NS...
2020-02-28 19:49:39 241
原创 78:Whitzard OJ逆向-Python reversing(一)
pyc拿到文件使用uncompyle6进行反编译得到源码。发现是AES加密,直接用脚本解密就完事了。from Crypto.Cipher import AESimport base64password = b'_th3_s3cr37_k3y_' #秘钥text = b'/\xce\xcc\x11\x8c\xb8\x8c\xcc\xfb\x0c\xb8\xb9\xab\xbb\xdf\...
2020-02-25 22:44:14 314
原创 77:栈溢出练习
没啥好写的,直接给个链接,这位师傅讲的很详细了,适合入门的人学习。这位师傅太赞了。。。https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=42241&page=1简单说一下怎么静态分析的。当然适合一定基础的人。call的时候会push EIP,进入call之后首先push ebp,然后将此时的栈顶esp的值给了ebp,...
2020-02-15 22:58:26 203
原创 76: Whitzard OJ逆向-Encrypt-Base encoding
分析了代码,看了题目,猜出是base系列加密。base64不对。分析了好半天,以为是base64换表加密,但还是搞不出来,想找writeup也找不到,然后随手搜了一下最终比较的字符串,没想到百度出来一模一样的字符串了。才知道这是base58,卧槽,base真牛逼。。。然后直接base58解密就是flag。base58的特征:123456789ABCDEFGHJKLMNPQRSTUVWXY...
2020-02-14 21:41:15 235
原创 75: Whitzard OJ逆向-Encrypt-abc
这里a1大于1,所以需要给参数。这段代码,主要是把参数分为三段。第一段就是前4位,第二段是4到9位,第三段是9到12位。然后两个strtol说明第一段和第二段是16进制的数字,也就是0-F。函数是sha1加密,用findcrypt插件查出来的,动态调了一下,确定就是sha1了。最终需要满足4个条件才能获取flag。第二段的sha1加密等于69fc8b9b1cdfe47e6b51a...
2020-02-13 22:52:07 164
原创 74: Whitzard OJ逆向-Encrypt-easy
大题目是加密,如果没见过的话,那就得慢慢看代码了。查看IDA代码,有三个函数很重要。第一个函数和外部因素没有关系,所以只需要动态调试拿到函数的结果就可以了,可以拿到一个256长度的数组。第二个函数做了异或操作。第三个函数根据特征猜测是base64换表加密。三个函数还原python代码大概如下:import string#第一个函数s1 = []str = 'Please inp...
2020-02-12 23:36:49 188
原创 73: Whitzard OJ逆向(三)——DotNet Reversing
Easy DotNet使用dnspy打开,找到Letters,拿到key输入即可得到flag,也可以直接写脚本跑出flag。SmartEnoughdnspy打开发现加了混淆。hint是de4dot使用de4dot进行反混淆。然后可以直接拿到flag。Where is my 13th countunity写的游戏,C#代码需要反编译Assembly-CSharp.dll游戏...
2020-02-11 22:43:21 293
原创 72:Whitzard OJ逆向--Validator3000
直接IDA分析,找到关键处,猜测就是通过sub_401510对一段代码进行解密,解密代码是用的windowsAPI库函数写的,看不懂,想着可以通过动态调试,然后发现还有防御,动调的话程序就不能正常执行了。根据题意和提示:可以知道,只要把程序跑起来,就能拿到flag,hint给了dump内存和unicode,使用软件procexp转储内存。然后IDA打不开,windbg也...
2020-02-10 22:58:33 248
原创 71:Whitzard OJ逆向(二)
团队打了一下午awd,第一次打,节奏太快,跟不上,web太菜,只会逆向不会pwn,纯混子......Dynamic analysistimeIDA伪代码很容易看出来。搜索关键字符串,交叉引用。逻辑很简单,直接修改跳转就OK了。game游戏没怎么玩,直接看的IDA伪代码,虽然题意是要动态调试,但还是看看代码吧。函数的大概意思都标注了。这道题花了不少时...
2020-02-09 22:27:49 305
原创 70:INSA2019-xHell
这道题给了一个表格,有函数表达式。=IF(AND(E82=1,B1>1,B1<=256,C1>1,C1<=256,D1>1,D1<=256,E1>1,E1<=256,B1-C1=46,E1-D1=119),"Congrats! Here is yout flag: INSA{"&TEXT(B1,"0")&"-"&TEXT...
2020-02-08 21:33:44 227
原创 69:Whitzard OJ逆向(一)
废物了半个月,不能继续对不起自己了,太菜了,入群题都不会,闭关修炼吧。simple format题目名字,简单的格式化,看名字好像是pwn题,IDA看看。直接看关键处吧。真让人头大,又有新知识可以学了,直接找writeup。经过参考,弄懂了这一串字符的意思。%s 决定类型, * 决定宽度, $ 决定第几个参数。所以 %1$*2$s 就是第一个参数以长度为第二个参数...
2020-02-07 22:21:10 289
原创 68:X-Four
讲了CTF和逆向,大多都知道,写一下一些加解密特征吧。BASEbase64特征:类似64进制,末位可能补全“=”(0-2个)。base64加密是长度三变为长度四。常规密码表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=类base64: XXencode:+-012...
2020-01-16 22:16:49 245
原创 67:X-Three
恶意代码分析,什么都没学会。。。。我太菜了。组件暴露漏洞:有的第三方应用可以调用高权限的系统应用达到一些不被允许的操作。特征:有权限调用,组件可导出(exported="true")代码分析,擅用交叉引用,查找关键信息。结合logcat:adb logcat > xx.txt 持续输出到文件确实啥都没学到,我水,我继续水。...
2020-01-15 22:51:21 234
原创 66:X-Two
今天讲的以前大部分都记录过了。简单写一下以前没记录的。保护和对抗干扰反编译利用反编译工具的bug或漏洞 • AndroidManifest.xml • dex • So 转换成伪代码时的bug • Smali -> Java • Arm指令 -> C++ 链接资源文件时的bug • 特殊的资源文件 • 超长的资源id对抗反编...
2020-01-14 21:25:32 226
原创 65:X-One
Xman初体验,跟不上进度啊。。。。Android系统架构应用层:应用程序,与用户进行交互,Java开发。应用框架层:API层,系统应用。系统运行库层:Android原生程序,Native层,C/C++程序和Android运行时库。硬件抽象层:内核与硬件接口。Linux内核层:Linux内核。Android运行机制Init启动->Zygote进程启动-&g...
2020-01-13 23:20:13 190
原创 64:Android原生程序
数据库课设59,以后课设再不自己写就剁手。火车上学习可还行。编译原生程序的三种方法:gcc编译ndk-build工具eclipse自动编译gcc编译需要编写makefile文件。ndk-build使用Android.mk与Application.mk作为脚本文件。原生程序的入口函数有静态链接和动态链接。动态链接又分为动态链接程序和动态链接库。启动函数为_start静态链...
2020-01-10 22:08:31 233
原创 63:攻防世界-Mobile-Android2.0
因为一点私人事情,废物了一把,出去玩了几天,调整了一下自己。要继续努力了,继续奋斗,坚持。1.明天课设答辩,因为之前太废物,只搞了一天课设,课设应付的,心里还有点自责。。。。如果挂了,也是活该。2.刷了一道题直接上JEB,查看show函数,所以参数应该是1.然后使用Android原生 对密码进行加密。IDA查看原生代码。Init函数将v2分解,分别给...
2020-01-10 01:04:43 1259
原创 第62天:2019Xman冬令营选拔赛部分writeup
Mobile直接拖入JEB,标准的输入和提交。然后把输入框的值赋给passt和flagt。分别是Long和string然后判断flagt是否为空,最后调用原生方法check。啥都不用想,直接解压上IDA。Arm汇编压根不会,直接看伪代码猜吧。这三个估计就是调用Factor类的factor方法,参数是passt。然后继续走到下一个函数。a5...
2019-12-31 21:59:00 837
原创 第61天:Android静态分析-快速定位关键代码
1.定位主Activity在AndroidManifest.xml文件中找到android.intent.action.MAIN即为主Activity。2.定位关键代码的六种方法信息反馈法根据程序运行反馈的关键字符串定位关键代码。特征函数法弹出提示信息等函数,如:Toast.MakeText().Show()方法顺序查看法从启动代码开始,按执行顺序分析。代码注入法在...
2019-12-30 22:11:18 268
原创 第60天:攻防世界Mobile两道题
人民的名义-抓捕赵德汉下载了一个jar文件,直接解压文件可以看到三个class文件,用jadx一个一个分析看看。就是一个接口。分析了一下,好多没见过的函数,虽然有一堆加密,但是看上去最后返回一个类,不像是关键比较的部分。看看下一个类吧。这个才像是关键比较啊,直接试试md5解密字符串看看。提交flag正确。。。。所以有猜测,第二个的defineClass创建了第三...
2019-12-29 22:26:11 918
原创 第59天:攻防世界-Mobile-lllusion
又是废物的一天。昨天学了ARM汇编,今天看看这道题。加载了so文件。调用了原生程序的CheckFlag方法,参数v2是我们的输入,v1是assets目录内Flag文件的内容。 Ku@'G_V9v(yGS然后分析lib-native.so文件。直接找到这个方法进行分析,Java_monkeylord_illusion_MainActivity_CheckFlag...
2019-12-28 22:25:22 714
原创 第58天:ARM学习笔记
原生程序的生成过程:预处理、编译、汇编、链接ARM处理器支持7种运行模式:用户模式、快速中断模式、外部中断模式、管理模式、数据访问终止模式、系统模式、未定义指令中止模式。工作状态:ARM状态和Thumb状态两种状态对应为:(Thumb状态在前。)R0-R7相同、CPSR相同。FP 对应 R11IP 对应 R12SP 对应 R13LR 对应 R14PC 对应 ...
2019-12-27 22:31:07 315
原创 第57天:CTF的python图片处理
1.到现在已经三十多个小时没休息了。昨天通宵,现在眼睛都快睁不开了。2.做了一道题,熟悉了一下python处理图片加载图片:from PIL import Imageimg = Image.open('flag.jpg')剪切图片:img = Image.open('flag.jpg')box = (x,y,x1,y1)result = im.crop(bo...
2019-12-26 22:07:49 1071
原创 第56天:攻防世界-Mobile-Flag_system
1.做了两道题,一个没做出来。自闭了,一个人学习,时间全浪费了,学习效率降低几倍。flag system做了一半。首先拿到一个文件,没有后缀,010editor查看,(这是更改后的)android备份文件,之前见到过,改后缀为.ab文件。然后使用abe.jar,但是发现没什么用,直接看writeup,知道是abe的问题。查看backupdecrypt.pl感觉就...
2019-12-25 23:45:09 1025 1
原创 第55天:三战easy-dex
1.熟悉了dex和odex文件2.再次尝试动态调试easy-dex,失败。3.完善easy-dexdex文件结构清晰,使用了无符号整型和LEB128的数据类型。结构如下:文件头固定:64 65 78 0A 30 33 35 00在010editor中可下载dex文件模板对应学习。odex是dex的优化,结构如下:文件头固定:64 65 79 0A 30 ...
2019-12-24 22:30:12 719
原创 第54天:Android开发之单选框RadioButton控件
1.组网测试2.买了一下午票,穷啊,得找便宜的3.单选框RadioButton每组单选框需要放到一个RadioGroup里。大多控件属性都很明显。orientation设置单选框的分布类型。checked设置选中状态。 <RadioGroup android:id="@+id/rg_1" android:layout_w...
2019-12-23 22:33:37 253
原创 第53天:Android程序生成步骤
Android程序即APK文件。APK文件实际上是一个zip压缩包。APK打包流程,可分为7步。第一步:打包资源文件生成R.java文件,主要使用工具aapt。调用aapt源码目录下Resource.cpp中的buildResources(),首先检查AndroidManifest.xml的合法性。 makeFileResource()函数处理res目录下的资源,然后调用comp...
2019-12-22 20:34:26 156
原创 第52天:Android之动态调试so
1.Xman打了一天,还能打出输出,自夸一下。2.记录一下动态调试so先搞一部真机然后用使用adb命令把IDA的android_server文件传进手机,64 和32位都传进去。安装apk到手机。adb push (文件) (手机目录)adb install xxxxx.apk有的目录root也没有权限,我是放在data根目录里,chmod 777 /dat...
2019-12-22 00:04:37 269
原创 第51天:Android之JEB动态调试smali
1.刷机,刷了大半天,小米,解锁,root终于能用了。2.解决APK_IDE一些apk反编译失败3.JEB动态调试APK_IDE或者其他一些反编译工具在反编译APK的时候可能会报错,有很多种可能吧1.jdk不匹配2.apktool版本太低今天遇到了这个问题,下载了高版本的apktool替换APK_IDE中的apktool即可。然后学习了一下JEB动态调试。...
2019-12-20 22:01:35 936
原创 第50天:Android开发之EditText控件
1.写了一天实验报告。2.晚上网络设备实验考试。3.抽了点时间看一下Android开发---EditTextEditText就是输入框,例如输入用户名密码等,就需要这个控件。 <EditText android:id="@+id/et_2" android:layout_width="match_parent" an...
2019-12-19 22:08:36 104
原创 第49天:Intent的简介
1.操作系统考完了,还有一门就解放了,这周六Xman,好慌。2.做了一道非常坑爹的android题攻防世界Mobile的APK逆向-2,坑死人了,好吧,也是我太菜了。拿到题,安装失败。第一次碰见安装失败的题。直接上JEB神器吧。发现这题代码量很大,而且很多函数都不认识,只知道是一个广播。花了点时间梳理了程序运行流程,根本不知道flag在哪里。。。。直接自闭。最后只能...
2019-12-18 21:50:22 185
原创 第48天:由(KCTF-独树一帜 )引发的C语言复习
1.昨天做完一道简单的Crack,发现自己C语言就是个辣鸡。(今天不服,得搞懂)2.在Ubuntu中下载Code::blocks3.复习操作系统,明天考试先看看昨天那道题的C语言脚本吧。(看雪里师傅的代码)#include <stdio.h>#include <string.h>#include <ctype.h>char src[2...
2019-12-17 22:11:24 174
原创 第47天:KCTF-独树一帜
被这么一道题整自闭了。很容易看出,加密函数就是401000函数。然后发现程序逻辑如此简单明显,估计5分钟搞定。用C语言写脚本,写了2个小时左右,一直失败,我吐了,对于内存访问冲突和初始化我无能无力,这个坑我还没爬出来,所以放弃了。然后用python写的脚本,这里要注意3个byte_xxxxxx。起初,我以为这三个不连,而忽略了后两个,其实:所以,只要给他们都赋值...
2019-12-16 22:01:19 278
原创 第46天:红帽杯2019-childRE(二)
昨天说到处理完输入了,今天把这道题干掉了,一定要有耐心,慢慢调试。把输入的三个数设为x,y,z。断到这里,注释都标注了,自己分析一下。在这里,发现goto到label_47就直接到运行结束了,没有flag,所以就不让他跳转,就要满足x<z类似的,也要满足y<x。继续单步,来到一堆计算的地方。这里是计算位数的。这都是一步一步分析的,没什么说...
2019-12-15 22:31:30 427
原创 第45天:红帽杯2019-childRE(一)
1.上午考四级,来年再战。2.下午出去玩了,没学习。3.放弃学习是不可能的,今天待在实验室了。今天打算复现一下childRE,直接拖到IDA,代码好长,我好害怕。搜索关键字符串定位函数。三处Sleep,直接patch,推荐一个IDA的patch插件,之前的博客也提到过,然后,这TM是啥。。。。对我这个菜鸡来说,只有自闭了。这是STL,我压根不会。。。。没办法...
2019-12-15 02:15:36 465
原创 逆向-攻防世界-key
最近搞了个破解专用虚拟机,找不到特别合适的,就凑活用吧。这个题目好几天了,有好多事,都没做,今天来看一看。不知道为啥好几个虚拟机都打不开这个文件,报错,还好有一个WIN7刚好打开,不知道什么原因。打开文件提示:?W?h?a?th?a?p?p?e?n?IDA搜索字符串,我们还看到了一个路径,说实话作为小白根本看不懂IDA伪代码,看了大佬的writeup知道是比较文件中的字符串,ok...
2019-12-13 21:29:54 134
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人