C++查缺补漏
C++查缺补漏面向对象省略号参数12345678910111213141516#include <cstdarg>void OutputInfo(int num,...){ va_list arguments; va_start(arguments,num); while(num--){ char* pchData=va_arg(arguments,char*); int iData=va_arg(arguments,int); printf("%s\n",pchData); printf("%d\n",iData); }; va_end(arguments);};int main(void){ OutputInfo(2,"beijing",2008,"olympic games",2008); return 0;};
函数指针12345 ...
Android入门
Android入门快速上手1234567891011121314151617181920212223242526272829303132package com.zypc.javaandroiddemo;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { supe ...
CVE-2023-38831漏洞
CVE-2023-38831漏洞下载文件https://github.com/b1tg/CVE-2023-38831-winrar-exploit
复现用WinRAR打开.rar文档,双击CLASSIFIED_DOCUMENTS.pdf文件,弹出计算器。
分析一级目录包括一个.pdf文件和一个目录,名称都为CLASSIFIED_DOCUMENTS.pdf。
目录中是命名为CLASSIFIED_DOCUMENTS.pdf.cmd的文件,内容为:
12calc.exe &CLASSIFIED_DOCUMENTS.pdf
利用用作者给出的Python脚本创建。
花指令的实现方法
花指令的实现方法简单jmpOD能骗过去,IDA正常识别。
12345__asm{ jmp label1 db junkcode label1:}
多层跳转1234567891011__asm{ jmp label1 db junkcode label1: jmp label2 db junkcode label2: jmp label3 db junkcode label3:}
jnx和jx条件跳转123456__asm{ jz label1 jnz label1 db junkcode label:}
永真条件跳转123456789101112131415161718__asm{ push ebx xor ebx,ebx test ebx,ebx jnz label1 jz label2 label1: ...
C#笔记
C#笔记入门1234567891011121314using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Test{ class Program{ static void Main(string[] args){ string s=string.Empty; Console.Title="Title"; //控制台标题 Console.WriteLine("Hello World!"); s=Console.ReadLine(); } }}
Char类常用方法IsDigit IsLetter IsLetterOrDigit IsLower IsNumber IsPunctuation IsSeparator IsUpper IsWhi ...
Delphi开发指南
Delphi开发指南常用系统函数与过程数值运算函数
数学运算函数
参数类型
函数值类型
功能描述
Abs(x)
Integer或Real
Integer或Real
Arctan(x)、Cos(x)、Sin(x)、Pi、Sqrt(x)、Power(x,y)、Ln(x)、Log10(x)、Exp(x)、Frac(x)、Int(x)
Real
Real
Round(x)、Trunc(x)
Real
Int64
Odd(x)
Integer
Boolean
Random[(x)]
Integer
不定
有参数返回$[0,x)$,无参数返回$[0,1)$。
字符处理函数
函数/过程
功能描述
UpperCase(s)
LowerCase(s)
CompareStr(s1,s2)
区分大小写,s1>s2返回值>0,否则<0,相等=0。
CompareText(s1,s2)
不区分大小写,同上。
Concat(s1,s2,…)
Pos(s1,s)
s1在s中起始位置,不包含返回0。
L ...
Angr符号执行笔记
Angr符号执行笔记Angr安装1pip install angr
引子:[网鼎杯 2020 青龙组]singal考点:虚拟机、符号执行
这题本身是个虚拟机题,给出了程序序列,要求找到合适的输入。本题采用符号执行最简便。
123456789101112import angr,syspath="D:\\CTF-Workbench\\signal.exe"project=angr.Project(path,auto_load_libs=False)initial_state=project.factory.entry_state()simulation=project.factory.simulation_manager(initial_state)simulation.explore(find=0x0040179E,avoid=0x004016E6)if simulation.found: for i in simulation.found: solution_state=i print(solution_state.posix.d ...
C++逆向入门
C++逆向入门Lumina私服IDA 8.3 Lumen私服设置很麻烦,但有人开发了Luminafix解决了这个问题。
下载:https://github.com/naim94a/lumen/
将插件中俩DLL塞插件目录下即可,在Options->General->Lumina设置服务器为lumen.abda.nl,端口为1235,代理服务器账密均为guest即可。
std::string内存布局12345678struct basic_string{ char *begin_; //数据地址 size_t size_; //字符串长度v union{ size_t capacity_; char sso_buffer[16]; };};
dump脚本123456789101112def dbg_read_cppst_64(objectAddr): strPtr=idc.read_dbg_qword(objectAddr) result='' ...
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 ...