CG-CTF WxyVM
一.
之前一直以为虚拟机是那种vmp的强壳,下午看了一些文章才逐渐明白虚拟机这个概念,目前ctf中题目出现的都是在程序中相等于内嵌了一个虚拟机,将程序代码转换成自己定义的指令,通过内嵌的虚拟机进行解释,就想jvm解释字节码一样。
这题感觉直接分析数据流也可以逆向出来233,看了令师傅的博客,临时学习了下idapython,原来这玩意这么好用,有点顶,学了点皮毛,看了很多文章,很多骚操作。
找到关键函数,之后从尾到头开始逆回去,

注意点:
1.for循环 从14997开始,因为从零开始,小于14999,说明最后一次的i是14997,加个3为15000,循环结束
2.数据溢出的问题,数据有时候很大,有时候又小,所以必须要控制数据的溢出。
3.idapython的使用
fact= [4294967236, 52, 34, 4294967217, 4294967251, 17, 4294967191, 7, 4294967259, 55, 4294967236, 6, 29, 4294967292, 91, 4294967277, 4294967192, 4294967263, 4294967188, 4294967256, 4294967219, 4294967172, 4294967244, 8]
addr=0x6010C0
for i in range(len(fact)):
fact[i] &= 0xffffffff
for i in range(14997,-1,-3):
v0=Byte(addr+i)
result=Byte(addr+i+1)
v3=Byte(addr+i+2)
if v0==1:
fact[result]-=v3
elif v0==2:
fact[result]+=v3
elif v0==3:
fact[result]^=v3
elif v0==4:
fact[result]/=v3
elif v0==5:
fact[result]^=fact[v3]
for i in range(len(fact)):
fact[i] &= 0xff
print(''.join(map(chr, fact)))
CG-CTF WxyVM的更多相关文章
- CTF中那些脑洞大开的编码和加密
0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到类似这样的问题:表哥,你知道这是什么加密吗?其实CTF中脑洞密码题(非现代加密方式)一般都是各种古典密码的变形,一般出题者会对密文进 ...
- 实验吧CTF题库-隐写术(部分)
Spamcarver 用kali下载图片 root@sch01ar:~# wget http://ctf5.shiyanbar.com/stega/spamcarver/spamcarver.jpg ...
- CTF密码学总结
CTF中那些脑洞大开的编码和加密 摘自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到 ...
- CTF中编码与加解密总结
CTF中那些脑洞大开的编码和加密 转自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到 ...
- [CTF]中那些脑洞大开的编码和加密
[CTF]中那些脑洞大开的编码和加密 摘自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会 ...
- 个人CTF资源聚合
i春秋 幻泉 CTF入门课程笔记 视频地址 能力 思维能力 快速学习能力 技术能力 基础 编程基础 (c语言 汇编语言 脚本语言) 数学基础 (算法 密码学) 脑洞 (天马行空的想象推理) 体力耐力( ...
- cg数据类型
Cg 支持7 种基本的数据类型:1. float,32 位浮点数据,一个符号位.浮点数据类型被所有的profile 支持(但是DirectX8 pixel profiles 在一些操作中降低了浮点数的 ...
- [CG编程] 基本光照模型的实现与拓展以及常见光照模型解析
0.前言 这篇文章写于去年的暑假.大二的假期时间多,小组便开发一个手机游戏的项目,开发过程中忙里偷闲地了解了Unity的shader编写,而CG又与shaderLab相似,所以又阅读了<CG教程 ...
- [Unity] Shader - CG语言 流程控制语句
CG语言中: 不支持 switch 语句(可以写,但不能很好的执行.) 循环语句中, 循环次数不能大于 1024 ,否则会报错. If...ELSE 条件判断语句: if (true) { } els ...
- [Unity] Shader - CG语言 和 HLSL语言
CG 跟 HLSL几乎是一摸一样的. (HLSL官方参考,包含语法格式,函数库,关键字,在这个地方: http://msdn.microsoft.com/en-us/library/bb509638( ...
随机推荐
- flink反压的监控
反压在流式系统中是一种非常重要的机制,主要作用是当系统中下游算子的处理速度下降,导致数据处理速率低于数据接入的速率时,通过反向背压的方式让数据接入的速率下降,从而避免大量数据积压在flink系统中,最 ...
- springboot整合JDBC出现Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.
今天使用springboot整合JDBC的使用,开始使用的是 com.mysql.jdbc.Driver驱动 结果运行出现此异常 那我们根据提示要求来修改即可 把驱动改成最新的com.mysql.cj ...
- Elasticserch与Elasticsearch_dsl用法
Elasticserch与Elasticsearch_dsl用法 Elasticsearch_dsl::https://elasticsearch-dsl.readthedocs.io/en/late ...
- CVPR2020论文解析:视频语义检索
CVPR2020论文解析:视频语义检索 Fine-grained Video-Text Retrieval with Hierarchical Graph Reasoning 论文链接:https:/ ...
- C++标准模板库(STL)——map常见用法详解
map的定义 map<typename1, typename2> mp; map需要确定映射前类型和映射后类型,所以需要在<>内填写两个类型,第一个是键的类型,第二个是值的类型 ...
- 新特性,推荐一款超强接口管理神器 Apifox
去年,在公众号给大家推荐了一款新面市不久的接口测试神器:Apifox,如果还未了解的读者,感兴趣的话可查阅原文:推荐一款技术人必备的接口测试神器:Apifox 为了照顾新进来的读者,且最近一年,Api ...
- 8, java数据结构和算法: 从阶乘来看递归的调用
直接上代码 public class RecursionDemo { //从阶乘看 递归的调用机制 public static void main(String[] args) { System.ou ...
- 一文搞懂Ajax,附Ajax面试题
目录 前言 正文 Ajax是什么东西? 实现核心/工作原理:XMLHttpRequest对象 XMLHttpRequest大致用法 创建XMLHttpRequest对象 发送请求 服务器响应 1. r ...
- 尚硅谷Java——宋红康笔记【day6-day10】
day6 一.数组的概述 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 2.数组相关的概念: 数组名 元素 ...
- 学废了系列 - WebGIS vs WebGL图形编程
目前工作中有不少涉及到地图的项目,我参加了几次技术评审,前端伙伴们在 WebGIS 方面的知识储备稍有不足,这次分享的主要目的是科普一些在前端领域比较常用的 WebGIS 知识.另外,我之前的工作中积 ...