首页
社区
课程
招聘
未解决 [求助]求助大佬!!!请大佬帮忙看看这段代码,蟹蟹!!!
2019-10-18 20:02 2406

未解决 [求助]求助大佬!!!请大佬帮忙看看这段代码,蟹蟹!!!

2019-10-18 20:02
2406

逆向新手,看到的一道逆向pyc的maze题,线上反编译出来的代码看起来很简单,但是我无论如何也找不出解法,,反汇编代码如下,求大佬给指点一二,不胜感激

#!/usr/bin/env python
# encoding: utf-8
# 如果觉得不错,可以推荐给你的朋友!http://tool.lu/pyc
print 'This is a maze.'
print 'Python is so easy.'
print 'Plz Input The Shortest Way:'
maze = '###########S#@@@@@@##@#@####@##@#@@@@#@##@####@#@##@@@@@@#@#########@##E######@##@@@@@@@@###########'
way = raw_input()
len = len(way)
p = 11
for i in way:
    if i == '&':
        p -= 10
    if i == '$':
        p += 10
    if i == '6':
        p -= 1
    if i == '3':
        p += 1
    if maze[p] == '#':
        print 'Your way is wrong'
        exit(0)
        break
    if maze[p] == '@':
        continue
    if maze[p] == 'E':
        print 'You do it,your flag is Syc\\{+Your Input+\\}.'
        exit(0)
        continue




[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2020-8-26 21:18 被VEhl编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (4)
雪    币: 873
活跃值: (531)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
monvvv 2019-10-18 20:28
2
0
10x10迷宫,'&'=down,'$'=up,'6'=left,'3'=right,'S'=start,'E'=end,按路线把flag组出来就行了。
雪    币: 360
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
VEhl 2019-10-18 21:47
3
0
但是要如何知道这是10*10的迷宫,而且'&'=down,'$'=up,'6'=left,'3'=right,的呢
雪    币: 16169
活跃值: (5986)
能力值: ( LV13,RANK:861 )
在线值:
发帖
回帖
粉丝
大帅锅 4 2019-10-18 22:36
4
0
我猜答案是这个 $$$$33333&&666&&33333$$$$$$$6666666&$
雪    币: 1664
活跃值: (403)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
PureT 1 2019-10-18 23:42
5
0
maze 总长度 100 二维迷宫肯定只有四个方向可以走 上下左右 ,S(Start)起点 E(End)终点。很显然 p = 11 正好对应 S 的数组下标 换句话说 p(position) 表示的是当前所在位置 根据题意当前坐标 p 可以表示为 p = 10*y+x   因为你在垂直方向上走的时候,由于是一维数组每次增加的下标数一定正好是一行的元素个数
这个迷宫不复杂可以直接手动走出来,复杂点的要写算法。
最后于 2019-10-18 23:44 被PureT编辑 ,原因:
游客
登录 | 注册 方可回帖
返回