递归和回溯算法

递归&回溯
分类: 其他 发布时间: 02-28 09:11 阅读次数: 0

网络招聘信息的分析与挖掘

网络招聘信息的分析与挖掘问题1:根据招聘职位的工作性质和内涵,试分析目前所需要的人才中可以分为哪些职业类型和专业领域?解答思路:针对该问题,主要定位附件1中的PositionFirstType和PositionName记忆PositionType这三列属性进行分析。python代码如下:import pandas as pddata = pd.read_csv('../data/附件1_招聘信息.csv', encoding='utf-8')PositionFirstType = data['
分类: 其他 发布时间: 02-28 09:11 阅读次数: 0

DFS&BFS

DFS&BFS1.深度优先搜索DFS解决什么问题DFS解决的是连通性问题,即给定一个起始点(或某种起始状态)和一个终点(或某种最终状态),判断是否有一条路径能从起点连接到终点很多情况下,连通的路径有很多条,只需要找出一条即可,DFS只关心路径存在与否,不在乎其长短算法的思想从起点出发,选择一个可选方向不断向前,直到无法继续为止然后尝试另外一种方向,直到最后走到终点深度优先搜索借助地数据结构是栈DFS的递归实现利用递归去实现DFS可以让代码看上去很简洁递归的时候需要将当前程序种
分类: 其他 发布时间: 02-28 09:10 阅读次数: 0

base64原理及其编解码的python实现

base64原理及其编解码的python实现base64base64简介base64编码表base64编码原理base64编解码的python实现其他base编码base16base32base36、base58、 base62、 base85、base91、 base92base64base64简介base64是一种基于64个可打印字符来表示二进制数据的表示方法。26=64,所以每6bit为一个单元,对应某个可打印字符。3字节有24bit,对应4个base64单元,即3字节任意二进制数据可由4个可打
分类: 其他 发布时间: 02-28 09:10 阅读次数: 0

cpu大小端详解

cpu大小端详解大小端大端(Big-Endian)释义小端(Little-Endian)释义举例大端(Big-Endian)小端(Little-Endian)大小端应用情况Intel的80x86系列芯片ARM芯片MIPS芯片C语言java语言网络传输数据大小端大端(Big-Endian)释义数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位向低位存储,这和我们的阅读习惯一致低地址部分权值高,高地址
分类: 其他 发布时间: 02-28 09:09 阅读次数: 0

REVERSE-PRACTICE-JarvisOJ-1

REVERSE-PRACTICE-JarvisOJ-1[61dctf]androideasy[61dctf]stheasyDD - Android NormalDD - Android Easy[61dctf]androideasyapk文件,jadx-gui打开主要的逻辑为,获取输入,检验输入的长度,输入异或23后与已知数组比较,验证输入写逆异或运算脚本即可得到flags=[113, 123, 118, 112, 108, 94, 99, 72, 38, 68, 72, 87, 89,
分类: 其他 发布时间: 02-28 09:09 阅读次数: 0

REVERSE-PRACTICE-JarvisOJ-2

REVERSE-PRACTICE-JarvisOJ-2DD - HelloAPK_500DebugMeFindPassDD - Hellomacos文件,无壳,ida分析start函数和sub_100000C90函数没什么作用主要的逻辑在sub_100000CE0函数,反调试检测和byte_100001040数组的循环变换,最后打印flag按sub_100000CE0函数的逻辑写脚本,即可得到flagbyte_100001040=[0x41, 0x10, 0x11, 0x11, 0x1B, 0
分类: 其他 发布时间: 02-28 09:09 阅读次数: 0

REVERSE-PRACTICE-JarvisOJ-3

REVERSE-PRACTICE-JarvisOJ-3爬楼梯软件密码破解-1FibonacciClassical CrackMe2爬楼梯apk文件,放到模拟器里运行一下“爬一层楼”按钮可按,每按一下,“已爬的楼层”加1“爬到了,看FLAG”按钮不可按,应该是“已爬的楼层”等于“要爬的楼层”时,按钮可按,获得flagjadx-gui打开,在com.ctf.test.ctf_100.MainActivity中,静态加载了ctf库主要的逻辑在onCreate方法中,要爬的楼层设置为随机数,当已爬的楼
分类: 其他 发布时间: 02-28 09:09 阅读次数: 0

REVERSE-PRACTICE-JarvisOJ-4

REVERSE-PRACTICE-JarvisOJ-4SmaliClassical CrackmeFindKeySmali.smali文件,jadx-jui打开主要逻辑为,使用已知的密钥和密文,解密ECB模式的AES写解密AES脚本即可得到flagfrom Crypto.Cipher import AESimport base64key="cGhyYWNrICBjdGYgMjAxNg=="key=base64.b64decode(key)cipher="sSNnx1UKbYrA1+MOr
分类: 其他 发布时间: 02-28 09:08 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-1

REVERSE-PRACTICE-BUUCTF-1easyrereverse1reverse2内涵的软件easyreexe程序,无壳,ida分析左侧函数窗找到main函数,flag提交即可reverse1exe程序,运行后提示输入flag,ida分析左侧函数窗无明显的main函数,shift+F12打开字符串窗口,找到flag相关字符串,双击来到字符串的存储位置,选中字符串变量按x交叉引用,来到正确的函数逻辑块,F5反汇编reverse2elf文件,无壳,ida分析左侧函数窗找到mai
分类: 其他 发布时间: 02-28 09:08 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-2

REVERSE-PRACTICE-BUUCTF-2新年快乐[BJDCTF 2nd]guessgamehellowordxor新年快乐exe程序,运行后提示输入正确的flag,upx壳,常规工具脱壳即可ida分析,左侧函数窗找到main函数,F5反汇编,简单的输入比较逻辑[BJDCTF 2nd]guessgameexe程序,运行后是一个猜数字的小游戏,猜对了也没有flag,ida分析左侧函数窗找到main函数,简单的猜数逻辑,但和flag没有关系shift+F12打开字符串窗口,直接看到fl
分类: 其他 发布时间: 02-28 09:08 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-3

REVERSE-PRACTICE-BUUCTF-2reverse3不一样的flagSimpleRevJava逆向解密reverse3exe程序,无壳,ida分析左侧函数窗最后找到main函数,F5反汇编先base64,然后顺序加上对应的下标,最后比较,写逆脚本即可得到flag不一样的flagexe程序,无壳,ida分析左侧函数窗找到main函数,F5反汇编,分析为迷宫,可知1-上,2-下,3-左,4-右确定迷宫为5*5,且不能碰到“1”,最后到达“#”,输入的数字顺序即为flag这
分类: 其他 发布时间: 02-28 09:08 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-4

REVERSE-PRACTICE-BUUCTF-4刮开有奖[BJDCTF 2nd]8086[GKCTF2020]Check_1n[GXYCTF2019]luck_guy刮开有奖exe文件,运行后无任何提示,无壳,ida分析WinMain->DialogBoxParamA->DialogFuncDialogBoxParamA函数:DialogFunc函数:其中sub_8A10F0函数存在递归调用,它的作用就是v7到v17的数据变换位置,把这个函数的代码进行简单处理运行,得到变换位置
分类: 其他 发布时间: 02-28 09:07 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-6

REVERSE-PRACTICE-BUUCTF-6rsaCrackRTF[2019红帽杯]easyRE[ACTF新生赛2020]easyrersa解压出来是.enc和.key两个文件,.enc是密文,.key存放着公钥信息使用在线网站或者openssl解析.key文件中存放的公钥信息可获知rsa需要的模数n和公钥e使用在线网站或者yafu分解n,结果为两个大素数写脚本即可得到flagCrackRTFexe程序,运行后提示输入密码,输入错误直接退出,无壳,ida分析main函数中,要求
分类: 其他 发布时间: 02-28 09:07 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-7

REVERSE-PRACTICE-BUUCTF-7Youngter-drive[ACTF新生赛2020]rome[FlareOn4]login[SUCTF2019]SignInYoungter-driveexe程序,运行后提示输入flag,有upx壳,脱壳后ida分析main函数中获取输入并拷贝,开启了两个线程分别运行StartAddress和sub_41119F两个函数,sub_411190函数验证输入,输入即为flag分析StartAddress函数,input_index的初始值为29,当i
分类: 其他 发布时间: 02-28 09:07 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-8

REVERSE-PRACTICE-BUUCTF-8[GUET-CTF2019]re相册[V&N2020 公开赛]strangeCpp[BJDCTF2020]easy[GUET-CTF2019]reelf文件,有upx壳,脱壳后ida分析字符串交叉引用来到主逻辑函数sub_400E28逻辑清晰,获取输入,验证输入,重要的是sub_4009AE函数进入sub_4009AE函数,是对输入每个字符的验证,输入长度为32,这里没有验证input[6]写脚本,由于程序没有验证input[6],即
分类: 其他 发布时间: 02-28 09:07 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-9

REVERSE-PRACTICE-BUUCTF-9[ACTF新生赛2020]usualCrypt[MRCTF2020]Transform[V&N2020 公开赛]CSRe[WUSTCTF2020]level1[ACTF新生赛2020]usualCryptexe程序,运行后提示输入flag,无壳,ida分析main函数逻辑清晰,获取输入,sub_401080函数对输入进行变表base64变换,结果存储到v5,然后check,验证输入sub_401080函数是很明显的base64,在函数开始部
分类: 其他 发布时间: 02-28 09:06 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-10

REVERSE-PRACTICE-BUUCTF-10[GWCTF 2019]xxor[HDCTF2019]Maze[WUSTCTF2020]level2[BJDCTF2020]BJD hamburger competition[GWCTF 2019]xxorelf文件,无壳,ida分析main函数的逻辑清晰,首先获取输入,为6个int64的值,然后每2个值一组,调用sub_400686函数进行变换,变换后的值存储到v11,最后验证v11,验证输入sub_400686函数,读取每组的2个值,进行64
分类: 其他 发布时间: 02-28 09:06 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-11

REVERSE-PRACTICE-BUUCTF-11[FlareOn4]IgniteMe[MRCTF2020]Xor[GKCTF2020]BabyDriver[MRCTF2020]hello_world_go[FlareOn4]IgniteMeexe程序,运行后提示输入flag,无壳,ida分析主逻辑在start函数中,读取输入后check,验证输入成功则输出“G00d j0b!”分析sub_401050函数,input和v4异或后放入byte_403180,v4有一个初始值,且在循环中不断变化,
分类: 其他 发布时间: 02-28 09:06 阅读次数: 0

REVERSE-PRACTICE-BUUCTF-12

REVERSE-PRACTICE-BUUCTF-12[WUSTCTF2020]level3crackMe[FlareOn6]Overlong[WUSTCTF2020]Cr0ssfun[WUSTCTF2020]level3elf文件,无壳,ida分析main函数中,获取输入,对输入做base64编码,提示有错误,在程序中有一个奇怪的字符串,提示和标准base64不同,估计是变表base64进入base64_encode函数,正常的base64编码逻辑,对base64_table交叉引用,发现在O_O
分类: 其他 发布时间: 02-28 09:06 阅读次数: 0