UPX动态脱壳
UPX动态脱壳
找壳的入口点,即xdbg的EntryPoint,会发现有pushad或4个push。
F8过所有push,在栈窗口中ESP右键打硬件访问断点4Bytes。F9过。
打开Scylla并附加进程。
一般pop后离真正的OEP不远了,找跳转较远的jmp,跳转地址即为真正的OEP。Scylla中输入OEP,dump到本地。
此时程序无法运行,但可IDA分析,因为IAT损坏。
Scylla使用IAT Autosearch,不要选择高级搜索。再Get Imports,再Fix Dump选择刚才dump的文件。
Angr做题笔记
Angr做题笔记00_angr_find程序:
1234567891011121314151617int __cdecl main(int argc, const char **argv, const char **envp){ int i; // [esp+1Ch] [ebp-1Ch] char v5[9]; // [esp+23h] [ebp-15h] BYREF unsigned int v6; // [esp+2Ch] [ebp-Ch] v6 = __readgsdword(0x14u); printf("Enter the password: "); __isoc99_scanf("%8s", v5); for ( i = 0; i <= 7; ++i ) v5[i] = complex_function(v5[i], i); if ( !strcmp(v5, "JACEJGCS") ) puts("Good Job."); else puts ...
Windows-SEH构造方法
Windows-SEH构造方法本篇为CTF专题,详细了解看“WindowsAPI查缺补漏-异常处理”。常用系统异常值:
异常
异常值
解释
EXCEPTION_ACCESS_VIOLATION
0xC0000005
程序企图读写一个不可访问的地址时引发的异常。例如企图读取0地址处的内存。
EXCEPTION_ARRAY_BOUNDS_EXCEEDED
0xC000008C
数组访问越界时引发的异常。
EXCEPTION_BREAKPOINT
0x80000003
触发断点时引发的异常。
EXCEPTION_DATATYPE_MISALIGNMENT
0x80000002
程序读取一个未经对齐的数据时引发的异常。
EXCEPTION_FLT_DENORMAL_OPERAND
0xC000008D
如果浮点数操作的操作数是非正常的,则引发该异常。所谓非正常,即它的值太小以至于不能用标准格式表示出来。
EXCEPTION_FLT_DIVIDE_BY_ZERO
0xC000008E
浮点数除法的除数是0时引发该异常。
EXCEPTION_FLT_INEXAC ...
CvxPy整数规划笔记
CvxPy整数规划笔记安装12pip install cvxpypip install cvxopt
实例:[HNCTF 2022 WEEK3]Help_Me!01背包问题。
12345678910111213import numpy,cvxpy,syssys.setrecursionlimit(1000000000) #设置最大递归深度weight=[71,34,82,23,1,88,12,57,10,68,5,33,37,69,98,24,26,83,16,26] #每样东西的重量value=[26,59,30,19,66,85,94,8,3,44,5,1,41,82,76,1,12,81,73,32] #每样东西的价值index=numpy.array(weight)mul_value=numpy.array(value)x=cvxpy.Variable(20,integer=True) #20个物品,定义一个未知数向量obj=cvxpy.Maximize(x@mul_value) #object目标:@是numpy中的矩阵乘法,目标为x点乘mul_value的值最大 Mini ...
Yara使用入门
Yara使用入门安装Github上下载yara和yara-rules,放在同一目录下,配置环境变量。
index.yar引用了所有规则,使用时例如:
1yara index.yar 1.php
常用参数:
-w关闭警告信息,-m设置输出meta信息,-s设置输出匹配字符串,-g设置输入标签信息。
1yara -w -msg index.yar *.*
Android反调试
Android反调试12345678protected void onCreate(Bundle arg4){ ApplicationInfo v1=this.getApplicationInfo(); int v2=v1.flags&2; v1.flag2=v2; if(v2!=0){ Process.killProcess(Process.myPid()); }}
逆向工程核心原理读书笔记
《逆向工程核心原理》读书笔记CreateRemoteThread()myhack.dll:
1234567891011121314151617181920212223242526272829#include "windows.h"#include "tchar.h"#pragma comment(lib, "urlmon.lib") //链接urlmon.lib#define DEF_URL (L"http://www.naver.com/index.html")#define DEF_FILE_NAME (L"index.html")HMODULE g_hMod = NULL;DWORD WINAPI ThreadProc(LPVOID lParam){ TCHAR szPath[_MAX_PATH] = {0,}; if( !GetModuleFileName( g_hMod, szPath, MAX_PATH ) )//返回当 ...
Rust语言基础
Rust语言基础命令行输出12345fn main(){ let a=12; println!("a is {0}, a again is {0}",a); println!("{{}}");//输出大括号}
详细输出123456789#[derive(Debug)] //打印详细信息struct Rectangle{ width:u32, height:u32,}fn main(){ let rect1=Rectangle{width:30,height:50}; println!("rect1 is {:?}",rect1);//替换为{:#?}时输出带格式的输出}
命令行输入123456use std::io::stdin;fn main(){ let mut s ...
SMC技术实现
SMC技术实现丢Viisual Studio2022里报了俩错,不会修。丢Dev-C++不报错,但是Release版还保留着原变量名、函数名,搞不懂。
12345678910111213141516171819202122232425262728//flag{smc_is_good!}#include <cstdio>#include <windows.h>using namespace std;char input[50];unsigned long long encrypt[]={0x53e5e8325de5938b,0x57e5c0dede2de472,0x9b6ba65e9b6b0093,0x9b6ba15c9b6bac5f,0x9b6bbb5a9b6ba75d,0x9b6bad589b6bb35b,0x9b6b9f569b6ba359,0x9b6bb3549b6ba957,0x9b6ba7529b6b9f55,0x9b6baf509b6baf53,0x9b6be14e9b6ba451,0x35adc0dede16bd4f, ...
C++病毒技术
C++病毒技术病毒分析https://www.virscan.org
https://support.virustotal.com/hc/en-us
https://s.threadbook.com/
https://habo.qq.com/
Windows API编程U盘病毒文件、驱动器操作。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include <Windows.h>char szAutoRun[]="[AutoRun] \\r\nopen=notepad.exe \\r\nshell\\open=打开(&O) \\r\nshell\\open\\Command=notepad.exe \\r\nshell\\explore=资源管理器(&X) \\r\nshell\\explore\\Command=notepad.exe \\r\nshellexecute=notepad.exe ...