171220 逆向-i春秋【迎圣诞】-NoExec

2023-12-24 05:50

本文主要是介绍171220 逆向-i春秋【迎圣诞】-NoExec,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1625-5 王子昂 总结《2017年12月20日》 【连续第446天总结】
A. i春秋【迎圣诞】-NoExec
B.
后缀名写着exe,却不能运行~
用010Editor打开分析一下
发现NT头有很明显的问题
这里写图片描述
MagicNumber应该是50 45 00 00,被改为了HA
后面一个HA很明显也是后加的,查询一下发现这里是Machine,表示使用的处理器
正确的值应该为4C 01,即i386 - 332
修改以后发现还是不能运行,继续检查
想起来DOS头里有一个重要的值:e_lfanew,它表示了NE头的偏移
原值为00 01 00 00,很明显是错的,改正为10 01 00 00(0x110)
改完发现Windows都能识别出来它是个MFC了
这里写图片描述
然而双击以后响应了一会儿还是没东西出来

拖入OD也在加载器中就跳入SEH了,估计加载的时候还有什么错误,当时没有发现
但是知道它是MFC就有地方可以操作了:
无壳,拖入IDA,发现WinMain函数里没有好辨认的东西,查找字符串也没有可读的部分╮(╯_╰)╭
于是开始考虑从资源下手
用ResourceHacker查看控件ID,发现确认按钮的ID为1001
于是根据ID定位按钮函数,通过IDA的搜索立即数
(结构体自己导入)
这里写图片描述

这样就找到了函数:sub_402C30
结构很明显
这里写图片描述
查看check函数,发现先是通过下标的奇偶将字符串切成两个
这里写图片描述
然后分别将两个字符串base64,再连接起来
这里写图片描述

之后大段的代码太长不想看(。
反正没有对v76操作的地方

最后可以看出来是和一个字符串比较
这里写图片描述

直接把它拖下来解b64发现不可见,说明中间还有操作

到这里就陷入了僵局
回头重新研究
发现当用IDA调试的时候会报start函数执行失败
这个提示让我茅塞顿开,节区属性的可执行属性被关闭了!
原来题目名“NoExec“就给出提示了╮(╯_╰)╭奈何一直没get到

于是将代码所在节区.text的属性加上可执行(DWORD Executable : 1)
这里写图片描述
就可以运行了!

在OD中对刚才分析的结果b64后的字符串下断,断到sub_401EC0->sub_401CE0中进行了操作
在IDA中大概看了一下,很复杂╮(╯_╰)╭
掏出密码学分析插件看一眼,哼,果然在这个函数里有对DES_box的调用
那这个sub_401EC0就是DES没跑了

OD中对这个函数下断,发现它是每次截取8个字符进行DES,密钥通过对参数的观察发现是

6E 06 15 51 93 5B 07 EA

IDA中大概能看到是上面一堆复杂操作出来的….看不懂(望天
跑了一下发现这个密钥是不变的
解密出来由于是二进制值,所以还有一次base64转为可见字符

于是按照思路写出解密脚本:

from base64 import b64encode, b64decode
from Cryptodome.Cipher import DESk2 = [0x6E, 0x06, 0x15, 0x51, 0x93, 0x5B, 0x07, 0xEA]
key = bytes(k2)
x = DES.new(key, DES.MODE_ECB)
s = b"GcDk0SvnNA1tsmp5FCK1FpSDfUXZbhHBSPheZaixuMyzqyysOAPCPB/p7sMpmK1KZo+lPfhMZxw="
c = b64decode(s)
# 解密
p = x.decrypt(c)# 还原奇偶字符
x = b64decode(p)
y = b64decode(p[28:-4])
for i in range(37):if(i%2==0):print(chr(x[i//2]), end='')else:print(chr(y[i//2]), end='')

活动页面上写着难度为中下,不过这个题目着实难了我一会儿(:з」∠)
虽然复盘想想好像的确没有太复杂的东西,但是各种小细节还是挺麻烦的
学到和巩固了很多知识~感谢出题人和i春秋提供的题目(°∀°)ノ

C. 明日计划
加密与解密/看雪题目

这篇关于171220 逆向-i春秋【迎圣诞】-NoExec的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/530729

相关文章

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

转:android ro.debuggable属性调试修改(mprop逆向)

android ro属性调试修改(mprop逆向)      大家都知道如果需要调试android 的程序,以下两个条件满足一个就行。第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1。两种方式第一种通常是解包添加属性再打包,随着加壳软件以及apk校验等,容易出

某里227逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解阿里227版本滑块参数n的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有需要可联系我。 一

【MyBatis学习14】MyBatis的逆向工程生成代码

1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。 2. 使用逆向工程 使用mybatis的逆向工程,需要导入逆向

js逆向--cai招网

js逆向--cai招网 一、寻找加密入口1、抓包2、关键字搜索寻找加密入口 二、调试js三、python代码实现 一、寻找加密入口 1、抓包 目标数据来源网址为:https://search.bidcenter.com.cn/search?keywords=%E5%85%AC%E5%85%B1%E4%BD%8F%E5%AE%85,打开开发者工具进行抓包。 目标响应数据被加密。

NRF51822 小黄车智能锁 逆向工程

笔者在夜跑时发现有人将拆下的小黄车智能锁丢弃在花园角落,于是萌生了拆解的想法。 拆开外壳后发现MCU 是NRF51822 ,并且预留了Jlink 调试接口,更萌生了逆向这个电路板的想法 下面是 各个智能锁厂家提供的方案: 摩拜单车:STM32F1+GSM+GPS 使用芯片 STM32F401 + NRF51802(BLE)+TD1030 泰斗定位芯片+BQ25895(充电管理)+C3Hx(

某城user_dun,js逆向分析

声明: 该文章为学习使用,严禁用于商业用途和非法用途,违者后果自负,由此产生的一切后果均与作者无关。 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除! 前言 这次会简单的讲解某城ly headers中参数userdun的逆向分析流程以及简单的补环境,如果有疑问可以在评论区交流讨论,我看到会及时回复的,另外,有

【js逆向专题】9.SM国密系列

本教程仅供学习交流使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,请各位自觉遵守相关法律法规。 目录 一.算法简介1.1 算法分类1.1.1 `SM2` 椭圆曲线公钥加密算法1.1.2` SM4 `分组加密算法 二.算法实现1. JavaScript实现1. `SM2`2. `sm3`3. `sm4` 2`python`实现1. `sm2`2.`sm3`3. `s

Mybatis 逆向生成工具mybatis-generator-core-1.3.2.jar的使用

mybatis-generator-core-1.3.2.jar用来生成我们的项目代码,今天分享一下,这个工具,神器之处,在于不仅仅生成dao,mapper还有service层,web层都可以根据数据库反射生成出来。上图 如图,使用mybatis,无非就用××××EntitySqlProvider或××××EntityMapper.xml两种形式书写sql语句,生成方法本文均提供 展开图

安卓逆向(之)真机root(红米手机)

概览: 1, 手机解锁 2, 下载官方系统包,推荐线刷包,取出镜像文件 3, magisk工具修补 官方系统包 4, adb:命令对手机刷 root 5, 完成 6, 小米手机解锁 点击 小米手机解锁OEM官方教程 记得数据线连接手机电脑 工具下载 点击 下载adb(电脑操作手机的命令工具)点击 下载Magisk(修补系统镜像)下载官方系统安装包(这里是小米手机),一定要跟当前系统