WMCTF2020easy_re
[WMCTF2020]easy_re64位无壳,IDA打开并没有发现“please input the flag:”字符串,别的提示字符串也找不到,
搜一下perl,Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 “实用报表提取语言”。
Perl 是高级、通用、直译式、动态的程序语言。
Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。
Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性。
Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。
看了别人的博客找到了看雪一篇文章,里面程序执行过程中会用script解压你压缩的源程序
1234567891011121314151617181920212223242526272829perl是解释语言,perlapp只是把你的perl程序压缩后放在资源里面,执行的时候会解压的。00405276 |. 83C4 0C |add esp, 0C00405 ...
BUU [2019红帽杯]Snake
[2019红帽杯]Snake打开文件发现这应该是一个unity编写的游戏,打开程序,做的真的很棒,试着玩了一下发现有很多的阶段,看来不能通过玩游戏找到flag了
Assembly-CSharp.dll直接拖进dnspy看,通过寻找找到主函数GameObject,看上面的import发现这个函数在Interface这个dll中
找到Interface这个dll,进入IDA,根据字符串找到函数
观察输入的a1的值,发现输入进来的a1的约束条件,a1要在0到99之间,下面进行了一大段的运算,直接去逆比较困难,那只能去调用这个函数去爆破
123456789import ctypesdef baopo(i): dll = ctypes.cdll.LoadLibrary("E:\\doenload\\re\\buu\\[2019红帽杯]Snake\\Snake\\Snake_Data\\Plugins\\Interface.dll")#进入interface.dll这个文件 print(i) dll.GameObject(i)#调用GameObject ...
Xposed框架 反射大师
安装Xposed框架官网下载地址:https://repo.xposed.info/module/de.robv.android.xposed.installer
下载之后直接拉进模拟器,安装
一开始框架会显示没有安装Xposed,我这是已经安装好的,进入框架
安装/更新,会请求root权限,同意即可,这样Xposed就安装好了
安装反射大师反射大师是一个支持一键脱壳的神器,很好用哦!
先下载反射大师 下载地址:https://pan.baidu.com/s/1ALN5n9rsfrV1lqWgaXXY2A(提取码:h5nc)
下载好后直接安装
模块没有激活,点击模块管理
勾选选项,然后重启模拟器即可
具体脱壳步骤1、用反射大师打开待脱壳的App
点击软件,选择这个软件,然后再打开他
2、脱壳
点击屏幕中间的六芒星,选当前Activity
写出DEX,保存即可
我们利用adb连接模拟器,adb connect ip+模拟器端口,我用的是夜神模拟器,可以在Nox\bin\BignoxVMS\nox中的nox.vbox查找,找到guestport=”5555的就是
使用adb连接 ...
基址重定位表
基址重定位表PE重定位向进程的虚拟内存加载PE文件(EXE/DLL/SYS)时,文件会被加载到PE头的ImageBase所指的地址处。若加载的是DLL ( SYS)文件,且在ImageBase位置处已经加载了其他DLL (SYS)文件,那么PE装载器就会将其加载到其他未被占用的空间。这就涉及PE文件重定位的问题,PE重定位是指PE文件无法加载到ImageBase所指位置,而是被加载到其他地址时发生的一系列的处理行为。
DLL/SYSA.DLL被加载到TEST.EXE进程的10000000地址处。此后,B.DLL试图加载到相同地址(( 10000000 )时,PE装载器将B.DLL加载到另一个尚未被占用的地址(3CO00000)处。
EXE创建好进程后,EXE文件会首先加载到内存,所以在EXE中无须考虑重定位的问题。但是Windows Vista之后的版本引入了ASLR安全机制,每次运行EXE文件都会被加载到随机地址,这样大大增强了系统安全性。
PE重定位的基本原理:1、在应用程序中查找硬编码的地址位置;
2、读取值后,减去ImageBase(VA转换为RVA);
3、加上实际加载地址 ...
BUU-reverse4
[FlareOn5]Ultimate Minesweeper打开发现是一个扫雷的游戏,一点都是雷。猜测这个是.NET文件,用dnspy打开
找到主函数。
点进去,发现有一个GetKey()函数,估计这个函数就是输出flag的函数了。
通过函数内的调用找到判断的地方
通过分析代码可以知到上图中的第一个if语句是用来输出fail的(也就是踩到雷之后,游戏结束。)我们可以直接把判断的地方注释掉,踩到雷就不会结束
保存运行,疯狂点
3个8的地方记住,到原来的程序中点出来,就可以得到flag
[FlareOn1]Bob Doge先安装一下程序,32位程序,c++写的,无壳
试着运行一下
dnspy打开,找到DECODE的地方
程序进行了三次运算,得到了text,text2和text3,最后回显text3。 直接在函数末尾下断 运行 截取到flag