IDA脚本编程
IDA脚本编程基础信息地址123idc.get_screen_ea() #获取当前光标所在地址idc.get_inf_attr(INF_MAX_EA) #获取本文件最大地址idc.get_inf_attr(INF_MIN_EA) #同上最小
段1234567891011121314151617181920idc.get_segm_name(ea) #获取地址所在段名idc.get_segm_start(ea) #获取地址所在段起始地址idc.get_segm_end(ea) #同上 结束地址idautils.Segments() #获取所有的段首地址idc.get_first_seg() #获取第一个段地址idc.get_next_seg() #获取下一个段地址idc.get_segm_attr(ea,attr) #获取函数属性idc.get_segm_attr(ea,attr,value) #同上 设置ida_segment.get_segm_by_name('.text') #通过名字获取段对象#遍历所有的段for i in idautils.Segments ...
极客大挑战2023个人解题报告
极客大挑战2023个人解题报告shiftjmp下面数据强制分析,把jz改为``jz short loc_1193`,创建函数即可反汇编。
123enc=[0x53,0x58,0x41,0x78,0x53,0x36,0x6A,0x64,0x38,0x64,0x6F,0x54,0x78,0x42,0x51,0x7B,0x78,0x22,0x4D,0x61,0x27,0x63,0x73,0x45,0x2D,0x7C,0x45,0x6C,0x2C,0x6F,0x2F,0x7B,0x5E,0x5C,0x00]for i in range(len(enc)): print(chr(enc[i]^i),end='')
幸运数字直接爆破,很幸运就在最后…
12345678910cmp_data=[0x0D,0x07,0x1D,0x25,0x1D,0x6E,0x30,0x39,0x2C,0x3F,0x2A,0x2B,0x32,0x3F,0x2A,0x37,0x6E,0x30,0x30,0x30,0x30,0x2D,0x01,0x07,0x31 ...
Kivy笔记
Kivy笔记配置虚拟环境安装虚拟环境
1pip install virtualenv
创建新虚拟环境
1python -m venv myenv
启动虚拟环境
1venv/Scripts/active.bat
退出虚拟环境
1deactivate.bat
Kivy安装依赖项及Kivy安装
1234pip install docutils pygments pypiwin32 kivy_deps.sdl2==0.1.22 kivy_deps.glew==0.1.12pip install kivy_deps.angle==0.3.3pip install kivypip install kivy_examples
Linux命令笔记
Linux命令笔记基础命令时间日期1date
月份日历1cal
磁盘可用空间1df
可用内存容量1free
结束终端会话1exit
导航&探索当前工作目录1pwd
改变当前目录12ch - #切换回前一个工作目录ch ~user_name #更换为用户user_name主目录
ls123lsls /usrls ~ /usr
选项
描述
-a,–all
列出所有文件。
-A,–almost-all
同上 不列出.和..。
-d,–directory
与-l结合使用,查看目录详细信息,而非其中内容。
-F,–classify
名称后加类型指示符。
-h,–human-readable
人类可读形式显示文件大小。
-l
长格式输出。
-r,–reverse
降序,一般字母升序。
-S
按照大小排序。
-t
按照修改日期排序。
file确定文件类型。
1file filename
less查看文本文件。
1less filename
命令
操作
Page Up或b
后翻一页。
Page Down或Spa ...
反调试专题笔记
反调试专题笔记Windows下反调试123456789101112131415#include <iostream>#include <Windows.h>DWORD AntiDebugCallBack(LPVOID lpThreadParameter){ while(true) if(IsDebuggerPresent()){ MessageBox(NULL,"被调试了","Debug",MB_OK); //... };};int main(void){ HANDLE hThread=CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)AntiDebugCallBack,NULL,NULL,NULL); WaitForSingleObject(hThread,-1); system("pause"); retu ...
Jadx在雷电模拟器下的远程动态调试笔记
Jadx在雷电模拟器下的远程动态调试笔记雷电模拟器设置在“设置”中调试选择允许本地调试,在去官网上下载新版本的adb全部覆盖掉目录下的那些文件。
adb设置Jadx的默认端口为5037,所以开放该端口:
1adb connect 127.0.0.0:5037
Jadx设置启动雷电模拟器,打开Jadx的“选择要调试的进程”,双击一个进程。
Frida初体验
Frida初体验Frida安装Frida与Python与模拟器的版本是互相匹配的,大约对应关系如下:
雷电模拟器9 对应 Android9 对应 Frida14.2.18 对应 Python3.10
如果能这么安装上更好:
1pip3 install frida==14.2.18
装不上自认倒霉(比如说我),去清华源上啥的自己下载报错提示的.egg文件,放在报错提示的缓存文件夹下,应该就行了。
然后下载Frida-tools:
12pip3 install frida-tools==9.2.5pip install frida-dexdump
去Github上:https://github.com/frida/frida/releases/tag/ 下载frida-server-14.2.18-android-x86_64.xz,直接解压,得到的文件可以自己重命名为frida-server啥的。如果报错可以换个其他版本试试。
雷电模拟器目录下有个adb.exe,但是版本很老了,从官网上下个新版本的,连着其他文件一起覆盖掉。
在雷电模拟器的“设置”的“其他设置”中开启root权限 ...
Ruby初探
Ruby初探基本操作123puts 'hello, world'language='Ruby'puts 'hello, #{language}'
判断逻辑运算符短路。
123456789101112131415x=4puts 'aaa' unless x==4puts 'bbb' if x==4if x==4 puts 'ccc'endunless x==4 puts 'ddd'else puts 'eee'endputs 'fff' if not trueputs 'ggg' if !true#等同于true:数字、字符串#等同于false:nil
循环123456x=x+1 while x<10x=x-1 until x==1while x<10 x=x+1 puts xend
鸭子类型
Ruby在大多数情况下表现为“ ...
Lua初探
Lua初探编译与反编译用以下命令将.lua源代码编译成.out字节码:
1luac main.lua
默认文件名为luac.out。反编译用unluac.exe,把.out文件拷到.exe同一文件夹下:
1unluac luac.out>main.lua
输出123456print(1989)return 1989=1989=xxx --nil类型:不存在print "xxx"print "xxx" print "xxx" --自动换行
字符串拼接1='xxx'..'xxx'
取字符串长度1=#'...'
表达式1234--数学表达式有+-*/% 和 乘方^=not((true or false)and false)=true or func() --“短路”:func()不会被执行-- ==相等~=不相等
函数1234567891011121314151617function triple(num) return 3*numend--或如下: ...
Python沙盒逃逸做题笔记
Python沙盒逃逸做题笔记[HNCTF 2022 Week1]python2 input(JAIL)法一payload1:
1__import__('os').system('sh')
法二payload2:
1__builtins__.__import__('os').system('cat ./flag')
[CISCN 2023 初赛]pyshell
-:返回上一次运行语句的结果,可以进行字符串拼接。
输入长度不大于$7$。
法一总payload:
1eval(open("/flag","r").read())
依次输入:
12345678910"open"_+'("/'_+'fla'_+'g"'-+',"r'_+'")'_+'.'_+'rea'_+ ...