hu1y40's blog

hu1y40'blog
天堂的穹空遍布地狱之火的颜色,但也是天堂。
  1. 首页
  2. CTF
  3. 正文

bugku Reverse简单题合集1

2023年10月7日 1497点热度 0人点赞 0条评论

0x00 Bugku Reverse简单题总结

介绍

由于逆向已有一定基础,部分题目过于简单不值得单开一个文档,所以将简单题全放在这里了。

0x01 入门逆向

URL

入门逆向

方法

丢进IDA32直接看到flag了

fig:

直接写个IDA脚本

static main(){
auto ad1,ad2;
ad1 = 0x40147A;
ad2 = 0x4014d9;
while(ad1<ad2){
msg("%c", byte(ad1+4));
ad1 = ad1 + 5;
}
}

0x02 Easy_Re

URL

Easy_Re

方法

直接f5看到了xmmword_413E34这个变量,点进去一看很显然像16进制,ida脚本翻译一下(或者直接hex View查看)。

fig:

static main(){
auto add1 = 0x413e34;
auto add2 = 0x413e4C;
while(add1<add2){
msg("%c", byte(add1+0));
add1 = add1 + 1;
}
}

0x03 Signin

URL

Signin

方法

安卓apk,下载GDA工具。

fig:

res文件夹下strings.xml文件里。然后直接反转base64解码即可。

0x04 游戏过关

URL

游戏过关

方法

通过字符串的交叉引用找到关键代码

fig:

我是直接写了个IDC脚本

static main(){
auto ad1,ad2;
ad2=0x45ea55;
ad1=0x45e975;
auto tmpad = 0x0045ea55;
auto da1,da2;
while(ad1<ad2){
//msg("%d", GetOpnd(ad1,1));
da1 = GetOpnd(ad1,1);
//msg("%08x", next_not_tail(tmpad));
tmpad=next_not_tail(tmpad);
da2 = GetOpnd(tmpad,1);
ad1 = ad1+4;
msg("%c", xtol(da2)^xtol(da1)^0x13);
}
}

OD动态调试可能更快。

0x05 Easy_vb

URL

Easy_vb

方法

这里非常奇怪,不知道是IDA版本还是什么关系,我的ida无法正常反汇编这个软件。

不过还是一眼看出来了。。

fig:

0x06 逆向入门

URL

逆向入门

方法

发现elf不是pe也不是。就010看了一下,图片转成base64。

找个地方解码即可。

解码图片直接扫就有flag了。

0x07 love

URL

love

方法

根据交叉引用找到关键字符串。

手动分析一下汇编

fig:

一眼for循环,以下为手动翻译伪代码

for(int i=0;i<lenth;i++;){
dst = dst[i]+i;
}

idc脚本

static main(){
auto ad=0x41a034;
auto c=0;
while(byte(ad)){
msg("%c",byte(ad)-c);
c = c+1;
ad = ad+1;
}
}

顺便分析一下base64编码。

fig:

0x08 Timer(阿里CTF)

URL

阿里CTF

方法

素数算法

public static boolean is2(int n){
int ix = 1;
if (n <= 3) {
if (n <= ix) {
ix = false;
}
}else if(!((n % 2)) || !((n % 3))){
ix = false;
}else {
int i = 5;
int ix1 = i * i;
while (ix1 <= n) {
ix1 = n % i;
if (ix1) {
ix1 = i + 2;
ix1 = n % ix1;
if (ix1) {
i = i + 6;
}
}
ix = false;
break ;
}
}
return ix;
}

this.beg = (int)(System.currentTimeMillis() / 1000) + 0x30d40;
this.this$0.t = System.currentTimeMillis();
this.this$0.now = (int)(this.this$0.t / 1000);
if (((this.this$0.beg - this.this$0.now)) <= 0) {
this.val$tv1.setText("The flag is:");
this.val$tv2.setText("alictf{"+this.this$0.stringFromJNI2(this.this$0.k)+"}");
}

其实主要是看k的值。

def is_prime(n):
"""
判断一个整数是否为质数(素数)。

Args:
n: 要判断的整数。

Returns:
True,如果n是质数。
False,如果n不是质数。
"""
if n <= 1:
return False

for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False

return True

sum=0
for i in range(2,0x30d40):
if is_prime(i):
sum+=100
else:
sum-=1
print(sum)

这是计算k值脚本。

标签: CTF 合集
最后更新:2023年10月7日

hu1y40

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • 0x00 Bugku Reverse简单题总结
    • 介绍
  • 0x01 入门逆向
    • URL
    • 方法
  • 0x02 Easy_Re
    • URL
    • 方法
  • 0x03 Signin
    • URL
    • 方法
  • 0x04 游戏过关
    • URL
    • 方法
  • 0x05 Easy_vb
    • URL
    • 方法
  • 0x06 逆向入门
    • URL
    • 方法
  • 0x07 love
    • URL
    • 方法
  • 0x08 Timer(阿里CTF)
    • URL
    • 方法

分类目录

  • 0day安全
  • Bypass
  • C++Prime
  • CTF
  • DoS
  • DoS
  • FUZZ
  • iot
  • JSONP
  • MISC
  • MISC
  • PHP伪协议
  • Python
  • REVERSE
  • sqli-labs
  • SQL注入
  • Trick
  • UAF
  • WEB
  • WEB
  • XXE
  • 书籍阅读
  • 二进制
  • 代码阅读
  • 信息搜集
  • 信息泄露
  • 加密与解密
  • 双重释放漏洞
  • 反序列化
  • 命令执行
  • 命令执行
  • 堆溢出
  • 密码学
  • 弱加密
  • 提权漏洞
  • 整数溢出
  • 文件上传
  • 未分类
  • 栈溢出
  • 格式化字符串漏洞
  • 模型
  • 汇编语言
  • 渗透测试
  • 漏洞分析
  • 漏洞利用
  • 漏洞战争
  • 漏洞挖掘
  • 病毒分析
  • 越界读取
  • 路径遍历
  • 逻辑漏洞
  • 配置不当
  • 钓鱼
  • 靶场
最新 热点 随机
最新 热点 随机
加密算法 2023年度总结 RTSPServer StackOverflow Vulnerability FUZZ 总览篇 MP4Box 无限循环漏洞 CVE-2023-40477 Winrar RCE漏洞分析
sqli-labs 41-50 bugku ez_fibon 0day安全 第16-20章总结 CVE-2021-35515 Apache Commons Compress拒绝服务漏洞 bugku 闪的好快 加密与解密 第8章 上

COPYRIGHT © 2023 hu1y40's blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备2021009673号-1