upx

NUC_CTF-writeup

寵の児 提交于 2021-02-15 06:26:11
逆向 jungle PEID 查壳,没有壳,32位。IDA打开大致看了看,C++写的,静态太难了,直接OD动态调试,   检测长度 大于0x1E 格式 flag{xx-xxxx-xxxx-xxxx} 第一个是一个md5解密,可以直接搜到md5字符串,猜测应该是字符串拼接,还能搜到两个base64编码,解密后拼接,第二个检测,不知道怎么弄,4个字符爆破呗。。。 upx 题目upx,那肯定是upx壳啊,手脱,用工具都可以。这道题没什么难度,最难得应该就是脱壳了吧。 查找关键字,交叉引用。 来到主函数,使用R键将数字转换为字符,可以找出三个字符串,然后异或求解。 s1 = '6ljh,!;:+&p%i*a=Sc4#pt*%' s2 = '1zsw438oOFu5i4nd0f_cH2z1' s3 = 'azxxcqabRW5qb3llZ2FtZwgi' flag = '' for i in range(len(s1)): flag += chr(ord(s1[i]) ^ ord(s2[i]) ^ ord(s3[i])) print(flag) 跑脚本就完事了。 RE2 一个游戏,64位,ELF文件,IDA载入分析,发现流程很简单。 一大串字符串,应该是用来进行解密的,然后有个‘flag’关键字符串的函数,进去看看。 动态调试。num是从0开始的,每次选择第一个选项的时候就会+1

CTF 湖湘杯 2018 WriteUp (部分)

老子叫甜甜 提交于 2021-02-14 07:39:33
湖湘杯 2018 WriteUp (部分),欢迎转载,转载请注明出处 https://www.cnblogs.com/iAmSoScArEd/p/10016564.html ! 1、 CodeCheck(WEB) 测试admin ‘ or ‘1’=’1’# ,php报错。点击登录框下面的滚动通知,URL中有id=b3FCRU5iOU9IemZYc1JQSkY0WG5JZz09,想到注入,但是不管输入什么都给弹到index,于是扔下这个思路。掏出目录扫描工具,发现存在list.zip,打开后是前面存在注入的界面。 图中告诉了加密的算法,AES-128-CBC对称加密,给了iv和key。并且若id后七位不是hxb2018则发生跳转(知道了之前一直跳index的原因),并且在最后返回的内容中会过滤掉空格。 上图可以看到注入的下面根据审计出的东西进行构造sql注入语句,因为会过滤空格,所以需要对空格进行代替,那就选择常用的注释/**/吧。 第一次注入为了测试有效性构造了1/**/and/**/1=2/**/union/**/select/**/1,2,3,4/**/hxb2018 对其进行AES-128-CBC加密,加密配置如下图: 拿到加密的结果放到id=后面,发现原通知部分显示了数字2和3,(3在正文部分)所以我们用第三个字段的位置来显示查询内容。 1,构造爆表语句: 1/**/and

2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践

瘦欲@ 提交于 2021-02-07 05:59:29
<center>2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践</center> <a name="FHML"></a> 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 使用msf编码器生成各种后门程序及检测 使用veil-evasion生成后门程序及检测 半手工注入Shellcode并执行 任务二:通过组合应用各种技术实现恶意代码免杀 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本 离实战还缺些什么技术或步骤 实验遇到的问题及解决方法 实验总结与体会 <a name="1"></a> <center>免杀原理及基础问题回答</center> 一、免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。 二、基础问题回答 问:杀软是如何检测出恶意代码的? 基于特征码的检测:简单来说一段特征码就是一段或多段数据

DDCTF2019逆向分析前俩题WriteUP

。_饼干妹妹 提交于 2021-02-02 16:33:56
DDCTF2019 笔者做了前俩道题。冷不丁过去一个月了、现在在此做一下WriteUp:题目链接: 1: 题目1 2: 题目2 reverse1:writeup: 1、程序打开后如下所示 2、查壳结果为UPX的壳。 3、UPXSHELL脱壳之后用GHIDRA打开后如下 这就程序大致的流程。我们的关键点在于确定其算法。 4、动态调试。 当我输入aaa时,程序内变成了=== 当我输入bbbb时,程序内部变成了<<<< 经计算 我们输入的值在程序逆向思维出来是9E-该数即可。 5、解密 成功拿到flag 2、reverse2 ——WriteUP 1.题目打开后如下:所示 2.PEID查壳结果 ASP的壳,看样子需要手动脱壳. 3.用OD脱壳。 (1)进程序之后按F9找到printf入口点。随后用ODdump直接脱下来 步骤-plugins->ODdumpEx->dump process 4.用IDA打开后查看大致的代码逻辑 看来这题是控制输入的字符串,来对v1进行赋值。并且将结果与DDCTF{reverse+}进行比对。 5.找到要分析函数模块。 经过分析,现然这俩个代码块是我们需要主分析的地方。现在大致内容我们已经理清了,下一步是带壳调试。 6.找到输入函数的规则。 经调试,找到了scanf的输入点。这里我们去看一下对应的IDA函数的位置。 这里的函数过于复杂。引起生理上的不适

脱upx壳--初试--单步追踪

為{幸葍}努か 提交于 2021-01-18 06:32:10
这里的练习题目是 reversing.kr 的 Easy Crack 我自己用upx加壳工具给它加了个壳,由于原文件逻辑简单,所以用它来练练手 之后用到的工具是IDA和Ollydbg <br> 0x00 在正式调试之前需要知道的一些操作 1.单步追踪法 向下调试 一般用的是 F8 (单步步过) 2.遇到 红色 的向上箭头说明运行到此处之后会 向上跳转 ,对于单步跟踪法来说是 不能 让它发生的,所以点击下一行, F4 运行到该处。 3.遇到 灰色箭头 :灰色说明它没有起作用,直接 F8 就行,并 不会向上跳转 。 4.如果看到 popad 指令,说明在下面不远处会有一个 大跳转 (跳到另一个区段) ,即程序即将运行到 OEP (真正的程序入口点)。 5.在快到popad的时候可能程序会跑飞,如下图的第一个箭头所指 0040BAC0 FF96 A8B00000 call dword ptr ds:[esi+0xB0A8] 那么我们可以直接F4到 0x400AC6 。 0x01 脱壳 *有了上述的了解之后,经过耐心的调试,程序来到了OEP。 注意看,jump的 目标地址 是 0x401188 , 而当前程序所处的地址是 0x40BB03 , 跨度如此之大,说明我们离成功不远。 *F8单步运行,到了最后一步。 *在0x401188处右键 -> 用Ollydump脱壳调试进程,点脱壳。

How to split Linux (Android) ARM64 executable into small and large parts?

南笙酒味 提交于 2021-01-05 08:52:19
问题 Background I have an Android app which uses native ARM64 executables (essentially GCC toolchain, extracted to app directory ( /data/data/%package%/somePath ) on the first run) to do some work. Due to Android 10 changes files in /data/data/.. can't have executable permission anymore. Confirmed workaround The workaround is to make executables look like shared libraries (libsomething.so) that are extracted by Android to /data/app/%package% dir with android:extractNativeLibs="true" in

2020 JUSTCTF F@k3 0ff1c@l REVERSE WP

谁说胖子不能爱 提交于 2020-12-16 03:29:46
写在前面:首先感谢出题人和运维的辛苦付出,让jkd有了第一届CTF,祝比赛越办越好 第一次写wp,同时由于自己太菜,赛中很多是参考了类似题的wp才能做出来,大部分直接手撕。为了让这篇wp显得不那么拉跨,于是参考了某究极卷王黄爷爷的脚本和出题人原汁原味的两道wp。 1. 下载附件,点开一看 丢进exeinfope,是个64位的 打开ida64,shift+f12,搜索字符串 2. 应该是非预期解(我大概也没有哪个题是预期解 做题参考博文: https://blog.csdn.net/xiangshangbashaonian/article/details/83476084?utm_source=app (此处感谢安卓出题人,同样也是这道题的出题人,让孩子去你的博客找base64解法,没找到,却找到了这题的解法) 以下是反编译的代码 关键代码是第23行,需要将数组md5s的四组十进制数转回十六进制,再每组进行md5解密,最后拼在一起,就是flag 然后对着博文里的抄转十六进制的代码 第三组少了一位,应该是转十六进制的时候出了问题,赛后看了黄爷爷的wp后才知道最前面少了一个0,分组去在线md5网站解密 网站: https://pmd5.com/ 或者使用前面所提及的博文中的脚本进行爆破 #937b8b318c5691f3 = JUST{ #b9ed7cb8a2f0bafe = you_a

uni-app中组件的使用

本小妞迷上赌 提交于 2020-12-07 03:40:54
组件基本知识点: uniapp中: 每个页面可以理解为一个单页面组件,这些单页面组件注册在pages.json里,在组件关系中可以看作父组件。 自定义可复用的组件,其结构与单页面组件类似,通常在需要的页面引入或者注册到全局main.js中使用,这是子组件。 1、props (props用于父组件给子组件传递参数,参数可以限制类型,可以设置默认值) 2、$emit(事件名,参数1,参数n):用于向父组件传递事件,可携带子组件的参数 3、ref 用于获取某个dom节点或子组件的注册引用信息,在父组件的$refs对象里,分别指向dom元素或子组件的实例 4、如需在基本组件的内置事件传递新的参数,可使用$event占位默认参数,如 @change($event,新的参数) 如下代码为一个弹窗组件: <template> <view> <!-- 弹窗 --> <view class="popup_box" v-if="showPop"> <view class="pop_panel" :class="{ani:hasAni}"> <!-- 关闭 --> <view class="pop_close" @click="closePop"> <image src="/static/image/icon/close.png" mode=""></image> </view> <!-- 标题 -->

uni-app 使用 iconfont 图标 自定义图标

走远了吗. 提交于 2020-11-26 08:05:02
uni-app 的uni-ui 的 Icon 图标组件,裡面的图标只是移动端常见的图标,对于一些其他需求所要显示的图标,这个是完全不够用。那么怎么办?模仿它的组件,用阿里巴巴图标矢量库的图标,自己定义一个图标组件呀。 一、uni-app 图标组件 1、组件文件m-icon里面有两个文件,一个是m-icon.css文件一个是m-icon.vue文件 2、m-icon.css 3、m-icon.vue 4、使用 上面就是uni-app 官网的例子。接下来我们就参考这个自己写一个组件。 二、新建组件 1、uni-icon ,里面有uni-icon.css 和uni-icon.vue 两个文件 uni-icon.css @font-face { font-family : uniicons ; font-weight : normal ; font-style : normal ; /* 暂时先用官网的url */ src : url('https://at.alicdn.com/t/font_1328537_gk9yl0aa13q.ttf') format('truetype') ; } .icon { font-family : uniicons ; font-size : 48upx ; font-weight : normal ; font-style : normal ;

Go 官方进程诊断工具 gops 详解 | 周末送书

空扰寡人 提交于 2020-10-01 07:43:36
K8s已经成为一线大厂分布式平台的标配技术。你是不是还在惆怅怎么掌握它?来这里,大型互联网公司一线工程师亲授,不来虚的,直接上手实战,3天时间带你搭建K8s平台,快速学会K8s,点击下方图片可了解培训详情,点击下方图片了解详情。 在类 Unix 系统中,我们常常会使用 ps 命令来查看系统当前所运行的进程信息,该命令为我们提供了较大的帮助,能够快速的定位到某些进程的运行情况和状态。 而在 Go 语言中,也有类似的命令工具,那就是 gops(Go Process Status),gops 是由 Google 官方出品的一个命令行工具,与 ps 命令的功能类似,能够查看并诊断当前系统中 Go 程序的运行状态及内部情况,在一些使用场景中具有较大的存在意义,属于常用工具,因此在本文中我们将对 gops 进行全面的使用和介绍。 基本使用 我们先创建一个示例项目,然后在项目根目录执行下述模块安装命令: $ go get -u github.com/google/gops 写入如下启动代码: import ( ... "github.com/google/gops/agent" ) func main() { // 创建并监听 gops agent,gops 命令会通过连接 agent 来读取进程信息 // 若需要远程访问,可配置 agent.Options{Addr: "0.0.0.0