【RC4】【2024summer】Snack.exe(ver.鸿辉)
snack.exe
!!!rc4的加解密算法相同!!!
查壳无壳,用ida查看string发现有字符
说明是用python写完打包的程序
使用pyinstxtractor和uncompyle6进行解包和反编译
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103# Visit https://www.lddgo.net/string/pyc-compile-decompile for more information# Version : Python 3.8import pygameimport randomimport keydef initialize(key): key_length = len(key) S = lis ...
【PE】PE结构的总概与文件格式特征
PE 结构总概可执行文件:可以由操作系统进行加载执行的文件。
格式:Windows:PE Linux:ELF
领域涉及:
(1)病毒与反病毒
(2)外挂与反外挂
(3)加壳与脱壳
(4)无源码修改功能·软件汉化等等
PE 文件特征 PE 指纹(不要光看后缀名!!!)
先看前两个字节是不是 MZ
再看 3C 位置的 16 进制地址
最后看 3C 所指地址处的前两个字节是不是 PE
DOS 部分IMAGE_DOS_HEADER 64 字节
DOS 块 MZ 块末尾与 PE 头中间的部分
PE 文件头部分PE 文件头标志+PE 文件表头+PE 文件头可选部分
PE 文件头标志(DWORD Signature)
PE 文件表头(标准 PE 头) 20 字节(IMAGE_FILE_HEADER FileHeader)
标准 PE 头的结构体形式
SizeOfOptionalHeader用来标识扩展 PE 头的大小
不修改的情况下是32 位是 0xE0,64 位是 0xF0.
PE 文件头可选部分(扩展 PE 头) 240/224 字节(64 ...
buu[ACTF新生赛2020]usualCrypt
[ACTF新生赛2020]usualCrypt打开main函数
查看sub_401080
发现是base64加密
跟进sub_401000
发现是将base64的序列码改变了
回到上一级查看sub_401030
这是一个大小写切换程序
回到main函数查看aZmxhz3tignxlxj
这是加密后的字符串
所以只要将这个字符串的大小写切换并且用魔改的base64解密就得到了flag
123456789import base64string='zMXHz3TIgnxLxJhFAdtZn2fFk3lYCrtPC2l9'.swapcase()#大小写转换tables64='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'#原来的base64表newtable='ABCDEFQRSTUVWXYPGHIJKLMNOZabcdefghijklmnopqrstuvwxyz0123456789+/'#现在表maketrans=str.maketrans ...
buu[HDCTF]MAZE
[HDCTF2019]Maze4这个题主要是学习花指令的去除,迷宫并不难
不过在使用upx去壳前需要把文件名中的空格去除,否则会脱壳失败
(花指令的有关内容相关请看以下文章)
https://bbs.kanxue.com/thread-279604.htm
https://blog.csdn.net/abel_big_xu/article/details/117927674
https://blog.csdn.net/m0_46296905/article/details/117336574
然后拖入ida中发现有花指令
摁u转换成二进制
摁c重新分析为代码
选定全部的红色地址摁p进行生成函数
这时main函数就被解出来了然后进入点击f5
asc_408078和dword_40807c只要放在哪就行,
但是w(上)s(下)a(左)d(右)考虑的就比较多了
shift+f12查看字符串表找到迷宫地图
长度是70个字符,可能是7*10或者10*7(建议去一些编程环境内进行排列,有字符自动对齐)
flag就是通关迷宫时键盘的输入
LitCTF2024逆向wp
litctf24(都是耻辱)RUNMRE无壳,拿查看shift+F12
第一行是base64加密后的字符串
第二行是魔改后的base表
==这是原表:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/==
ezpython(与三个python的环境默认缠斗一上午)python打包成的exe我们要用pyinstxtractor.py来进行解包
解完包我们将ezpy.pyc扔进在线网站中反编译成.py
(反编译网站https://www.lddgo.net/string/pyc-compile-decompile)
1234567891011#!/usr/bin/env python# visit https://tool.lu/pyc/ for more information# Version: Python 3.11import Litctfbase64flag = input('flag:')flag = Litctfbase64 ...
汇编语言
汇编语言第一章 基础知识汇编语言的组成:==1.汇编指令(核心)==:机器码的助记符,有对应的机器码。
2.伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
3.其他符号:如+、-、*、/等,由编译器 识别,没有对应的机器码。。
储存单元:==n位的cpu,一个字就有(n/8)个字节==(这应该是第二章的内容,但是我觉得首先要把单位分清楚就放在这里了)
==Byte(储存单元/字节)简写 B==
1KB=1024B 1MB=1024KB 1GB=1024MB 1TB=1024GB
1024 = 10^10
计算机最小单位是bit(比特)如果一个计算机有128个储存单元,编号从0~127
` 11111
cpu对储存器都读写CPU 要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行下面 3类信息的交互。1.存储单元的地址(地址信息);2.器件的选择,读或写的命令(控制 ...
