ZJCTF预赛一个.py的逆向题】的更多相关文章

#!/usr/bin/env python # -*- coding:utf-8 -*- from hashlib import sha256 def xor(a,b): result = [] for (i, j) in zip(a, b): result.append(chr(ord(i) ^ ord(j))) return "".join(result) def HASH(msg): return sha256(msg).digest()[:8] def zjctf_encryp…
z3 巧解逆向题 题目下载链接:http://reversing.kr/download.php?n=7 这次实验的题目为Reversing.kr网站中的一道题目. 题目要求: ReversingKr KeygenMe Find the Name when the Serial is 76876-77776 This problem has several answers. Password is ***p 这是一道典型的用户名-序列号形式的题目,序列号已经给出,且用户名的最后一位为p. z3…
最近社团弄了CTF比赛,然后我就帮忙写了逆向的题目,这里写一下WriteUp,题目和源码在附件中给出 一个简单的逆向:one_jmp_to_flag.exe 这题算是签到题,直接OD智能搜索就完事了,flag{Welcome_to_GeekFZCTF} 一个简单的对比:check.exe 这一道也算是送分题,可以用IDA直接分析可以看出来,这里就是读取输入的字符串,然后逐个进行对比,这里可以直接用IDA转化为char型就可以看出.flag{sAdf_fDfkl_Fdf} 猜猜那个是flag:wh…
[BZOJ 2759] 一个动态树好题 题目描述 首先这是个基环树. 然后根节点一定会连出去一条非树边.通过一个环就可以解除根的答案,然后其他节点的答案就可以由根解出来. 因为要修改\(p_i\),所以我们用\(lct\). 还是有点难写的. 代码: #include<bits/stdc++.h> #define ll long long #define N 30005 #define ls ch[v][0] #define rs ch[v][1] using namespace std; i…
BZOJ2759: 一个动态树好题 Description 有N个未知数x[1..n]和N个等式组成的同余方程组:x[i]=k[i]*x[p[i]]+b[i] mod 10007其中,k[i],b[i],x[i]∈[0,10007)∩Z你要应付Q个事务,每个是两种情况之一:一.询问当前x[a]的解A a无解输出-1x[a]有多解输出-2否则输出x[a]二.修改一个等式C a k[a] p[a] b[a] Input N下面N行,每行三个整数k[i] p[i] b[i]Q下面Q行,每行一个事务,格…
PyCharm在同一个包(package)下,如何把一个.py文件导入另外一个.py文件下 在同一个包下只需要用import 掉以后就可以找到模块所在的位置,但是如果不在同一个包下,在需要返回父级调用 调用类的时候用  from mudule(模块名) import class(类名) 如何settings.py导入到.main.py中 如何a.py导入到b.py中 如图所示,同一个目录下面我就写了两个py文件,然后我就通过这两个py文件来讲讲Python的import.   先在a.py里面随…
目录 前言 本质 math definition py definition class 是类,是对象的蓝本 回到函数 一个结论 self 是什么? 以上就是py世界里函数的定义 什么是函数,干嘛啊,怎么干.一个py程序员的视角.md 前言 本文参考 https://www.runoob.com/python/python-functions.html 本质 math definition y = f(x) 这里的f 就是函数. 你给f 一点参数,f 给你返回 使用这个参数x 后的结果y py…
1. Python基本语法在此不熬述. 2. 到管网下载Python 3.6.x 版本,与本机匹配的版本,如本机是 win7 64 python-3.6.5-amd64 3. 下载IDE:PythonCharm 如果只是个人开发,为避免不必要的麻烦,下载社区版. 4. 先安装Python 配置windows环境路径Path: 在 Windows 设置环境变量path 这个字符串的最后加上;D:\Python\Python36 即python的安装目录, 以上是我的安装目录 或在命令提示框中(cm…
Conda安装及第一个py程序 安装Conda 下载安装 在Anaconda官网下载Anaconda 打开Conda安装程序 设置好安装目录(这个一定要记好,后边要用),比如我的目录就是 D:\ProgramData\Anaconda3\ 剩下的按默认进行就可以了 环境变量配置 环境变量配置非常重要…
结构如下: appsdk\ appsdk.py(这里面有多个类,包括appsdk,appsdksync等类) __init__.py ... ① 有个appsdk的文件夹(符合python包的定义) ② 将这个appsdk的文件夹copy到/usr/lib/python2.7/site-packages目录下 ③ 进入这个appsdk文件夹,vim __init__.py,然后输入如下内容(这是一种参考模式,因为之前我试过很多方式,发现RF加载不了包里面的py里面的多个类): from apps…
真的是动态树好题,如果把每个点的父亲设成p[x],那么建出来图应该是一个环套树森林,拆掉一条边,就变成了动态树,考虑维护什么,对于LCT上每个节点,维护两组k和b,一组是他到他父亲的,一组是他LCT子树中深度最深的点到深度最浅的点的父亲的k和b,查询时只需查询一颗树中sf到自己的k和b,判断是否有唯一解,然后再解就可以了.注意不能换根,因为树的形态是固定的. #include<cstdio> #include<cstring> #include<iostream> #i…
题解: 的确是动态树好题 首先由于每个点只有一个出边 这个图构成了基环内向树 我们观察那个同余方程组 一旦形成环的话我们就能知道环上点以及能连向环上点的值是多少了 所以我们只需要用一种结构来维护两个不是直接相连点的状态 由于有删边连边操作,比较容易想到lct 我们按照套路将它拆掉一条边形成一颗树 因为我们现在只知道环上某一点的值,所以我们这棵树应该是不随便换根的 每次询问只需要把当前这个点access再splay一下 查询用根怎么表示就可以了 修改方程组等价于删一条边,连一条边 删的边如果不在环…
HelloWorld  文件名称  Hello是类 from HelloWorld import Hello >>> h = Hello() >>> h.hello() Hello, world  # 输出结果 HelloWorld.py文件内容 class Hello(object): def hello(self, name='world'): print('Hellp, %s' %name) 在同一个文件下 调用函数: A.py文件 def add(x, y):…
题如其名啊 昨天晚上写了一发忘保存 只好今天又码一遍了 将题目中怕$p[i]$看做$i$的$father$ 可以发现每个联通块都是一个基环树 我们对每个基环删掉环上一条边 就可以得到一个森林了 可以用$LCT$维护 这时我们思考如何求解 对于一个环 拆掉边$(u,fa[u])$得到一条链$($下令$v=fa[u])$我们通过关系是从链头$u$向下递推 在$v$点可以得到 $x_v=k_1x_u+b_1$ 由删掉的$(u,v)$边可得关系式 $x_u=k_2x_v+b_2$ 带入$x_u$即可解得…
第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-) 关于python3的urllib模块,可以看这篇博客:传送门 首先是用urlopen打开网站并且获取网页内容,通过查看网页源代码,可以很容易的发现图片的格式都是差不多的,所以用正则表达式来匹配即可. from urllib import request import re def get_pic(): web = request.urlopen(r'http://tieba.baidu.com/p/2…
letcode第一题, tm的不好弄. 想了很久想到了一个粗蠢的解决办法. Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice…
一个CTF的题目,拿来学习学习 玩了好久,再加上学校一堆破事,最近又开始瞎弄了,找了几个CTF的题目,和别人写的一些内容,也当是学习,也当是看完之后的小结.顺便也说一下如果自己拿到这题目会从哪做起. 这个,由于之前IDA学的等于没学,一些神操作比如F5大法什么的,只是知道,具体也没怎么用,还需多实践啊! 废话不多说,开搞 瞎比看 拿到了先运行下,这个,画风一如既往有点low逼,随便输入肯定不对,稍微记一下输出内容吧,毕竟字符串还是有用的.猜一下估计就知道如果对的话,应该就是所谓的好啊正确啊什么玩…
Portal -->bzoj2759 Solution 哇我感觉这题真的qwq是很好的一题呀qwq 很神qwq反正我真的是自己想怎么想都想不到就是了qwq 首先先考虑一下简化版的问题应该怎么解决: 1.如果说我知道\(x_1\equiv k_1*x_2+b_1(mod\ 10007)\),并且\(x_2\)已知,那么显然有当\(k_1=0\)时有\(x_1=x_2\):\(k_1=1\)且\(b_1=0\)时有无数组解,\(k_1=1\)且\(b_1\)不为\(0\)时无解:\(k_1>1\)…
程序: 运行程序 弹出一个对话框,点击 OK 来到主界面,点击 Help -> Register Now 这是输入注册码的地方 按关闭程序的按钮 会提示剩下 30 天的使用时间 用 Resscope 载入程序 在 Dialog 下找到程序要退出时的那个对话框 在 100 处找到该对话框 103 为 lpTemplateName 对话框模板 逆向: 用 OD 载入程序 右键 -> 查找 -> 所有命令 64 为 100 的十六进制 找到很多 push 0x64 的指令 右键 -> 在…
程序: 打开程序 出现一个 NAG 窗口 这是主界面 点击 Exit 程序出现 NAG 窗口,然后退出 用 PEiD 看一下 是用 VC++ 6.0 写的程序 逆向: 用 OD 载入程序 跑一下程序 出现 NAG 窗口时暂停 按 Alt+K 显示调用堆栈 这个是 MFC 的对话框,双击来到它所在的地方 下一个断点,重新跑一下程序 OD 停在了断点处 按 F8 往下走一步 NAG 窗口出现了 过了几秒就往下走了一步了 按 F9 运行 程序又停在了这个断点处 按一下 F8 主窗口出现了 点击 Exi…
程序: 运行程序 点击 Start,它就会进行对系统的扫描 点击 About -> Enter Registration Code 随便输入一下内容,点击 OK,会弹出该弹窗 用 PEiD 看一下 该程序是用 Microsoft Visual C++ 6.0 写的 逆向: 用 OD 载入程序 右键 -> 查找 -> 所有模块间的调用 键盘直接敲 getwindowtext 找到几个 GetWindowTextA,A 为 ASCII 码,W 为 Unicode 右键 -> 在每个调用…
程序: 运行 弹出 NAG 窗口,提示要花 20 美元注册 然后会进入主窗口 提示剩余 5 天的使用时间 点击,菜单栏 -> Help -> About 显示未注册版本 逆向: 用 OD 打开程序 首先把剩余 5 天的字符串作为切入点 先按 F9 运行一下程序 右键 -> 查找 -> 所有参考文本字串 右键 -> 查找文本 要把整个范围勾选上 继续查找看看,按 Ctrl+L 这个和第一个是一样的 双击第一个查找到的结果,跳到该字符串所在的位置 这个地方的上一条语句是一个 jn…
同一文件夹下的调用 1.调用函数 A.py文件如下:def add(x,y):    print('和为:%d'%(x+y)) 在B.py文件中调用A.py的add函数如下: import AA.add(1,2)或from A import addadd(1,2) 2.调用类 A.py文件如下:class A:    def __init__(self,xx,yy):        self.x=xx        self.y=yy    def add(self):        print…
点此看题面 大致题意: \(n\)种元素,有若干组将\(x\)元素转化为\(y\)元素的操作.问对于所有可能的元素拥有状况,改变转化操作的顺序,是否会影响转化后最终的结果. 水题 虽说是这么水的题,但毕竟还是模拟赛题,所以照例写一下题解吧... 首先,若对于两组转化操作\((a,b),(c,d)\),\(a,b,c,d\)各不相同,显然它们是互不影响的. 否则,我们分下面几类考虑: \((a,b),(a,c)\),显然,先\((a,b)\)则\(a\)会变成\(b\),先\((a,c)\)则\(…
PoPoQQQ 再一次orz-没看得特别明白的可以回来看看蒟蒻的补充口胡 我这里提一下关于splaysplaysplay维护的子树信息- 在原树上考虑,对于每一个点iii都有这样一个信息xi=ki∗xfa[i]+bix_i=k_i*x_{fa[i]}+b_ixi​=ki​∗xfa[i]​+bi​. 特别的,对于根节点rrr,设它的父亲为sf(special father)sf(special\ father)sf(special father),有xr=kr∗xsf+brx_r=k_r*x_{s…
在 Linux 中,可以直接用vim 或者 vi 来编辑一个 python 文件 vim hello.py 进入编辑页面 #coding:utf-8 print("你好") (因为在Linux 中,可能不支持中文,我们可以加入[#coding:utf-8]) 退出后,输入 python hello.py 运行结果: 你好 待续......…
一道Java程序题,主要是考察for循环如下所示: public class Test { static boolean fun(char c) { System.out.print(c); return true; } public static void main(String[] args) { int i=0; for(fun('A');fun('B')&&(i<2);fun('C')) { i++; fun('D'); } } } 这道题考察的就是对for循环的理解.for…
群规: 1. 不骚扰人 2. 不涉及娱乐政治 3. 主要就这两条 入门参考:https://book.douban.com/review/9547077/ qq群/网盘:523445644  # 加群记得注明py # 内有<流畅的python 等PDF 论坛:https://github.com/pyzh/song 群主:https://about.me/absente 技术类: NTFS-> https://www.zhihu.com/people/101010 https://www.ji…
Description 有N个未知数x[1..n]和N个等式组成的同余方程组: x[i]=k[i]*x[p[i]]+b[i] mod 10007 其中,k[i],b[i],x[i]∈[0,10007)∩Z 你要应付Q个事务,每个是两种情况之一: 一.询问当前x[a]的解 A a 无解输出-1 x[a]有多解输出-2 否则输出x[a] 二.修改一个等式 C a k[a] p[a] b[a] Input N 下面N行,每行三个整数k[i] p[i] b[i] Q 下面Q行,每行一个事务,格式见题目描…
题意 https://www.lydsy.com/JudgeOnline/problem.php?id=2759 思路 每个节点仅有一条有向出边, 这便是一棵基环内向树,我们可以把它在 \(\text{LCT}\) 内部当作有根树维护,外部再保存根的出边. 我们用一个结构体 \((K,B)​\) 表示 \(y=Kx+B​\) ,它的加法运算意义是将前者的 \(y​\) 代入后者的 \(x​\) .一条路径 \((u,v)​\) ( \(u​\) 指向 \(v​\) )的 \(sum​\) 就是在…