2022年春秋杯 easy_python
2022年春秋杯 easy_python分析首先打开发现是一个txt的文本,把文本打开,发现这是一道python字节码到源码的逆向
3 0 LOAD_CONST 1 (204) 3 LOAD_CONST 2 (141) 6 LOAD_CONST 3 (44) 9 LOAD_CONST 4 (236) 12 LOAD_CONST 5 (111) 15 LOAD_CONST 6 (140) 18 LOAD_CONST 6 (140) 21 LOAD_CONST 7 (76) 24 LOAD_CONST 3 (44) 27 LOAD_CONS ...
一些函数的使用
一些函数的使用删除文件#include<stdio.h>#include<Windows.h>int main(){ BOOL a; char Path_File[] = "C:\\Users\\政政真厉害\\Desktop\\111.txt"; a = DeleteFileA(Path_File); printf("返回值:%d\n扩展错误信息%d\n", a, GetLastError()); //getchar(); return 0;}
这里的DeleteFileA函数
BOOL类型的返回值
PS:这里写路径的时候不是”/“,这里要用”//“
PS:GetLastError函数没有参数,所以括号内不填
DLL程序1#include "pch.h"void ccc(){ MessageBox(NULL, "导出函数被调用成功!", "信息:", MB_YESNO);}void aaa(){ ...
弱口令安全实验室2022招新赛
弱口令安全实验室2022招新赛分析首先查壳,知道是64位的的无壳
然后放入IDA中去看看
看到这里有一个加密函数,进去看一下
左右的移位和格式很容易推断出是一个TEA的魔改,然后再去看看外面的逻辑
从外头整个函数来看,可以知道这个是先加密v4然后再进行比对再移位来得到right,那么脚本反过来写就行了
脚本#include <stdio.h>#include <stdint.h>#include<windows.h>unsigned long str2[32] ={46,162,154,93,216,119,117,77,224,124,80,69,114,165,248,93,109,14,98,20,102,95,216,91,138,93,196,200,116,32,253,101};unsigned int key[4]={1,2,3,4};void decrypt(unsigned int *A,unsigned int *B) { int j; unsigned int ...
BUU[NPUCTF2020]Baby Obfuscation
[NPUCTF2020]Baby Obfuscation分析首先查壳,64位无壳,放入IDA中看看
看到十分的复杂,然后里头还有很多的函数调用,那么先一个个分析每个调用的函数在干嘛
F0X1
欧几里得算法也称为辗转相除法,用于计算两个数的最大公因数,一般用gcd(a,b)来表示a和b的最大公因数。设a、b均为正整数,则gcd(a,b)=gcd(b,a%b)
F0X2和F0X3
F0X4
这个相当于a-b
F0X5
这个表示a的b次方(a^b)
几个重要的函数分析完了,那么接下来分析一下整个在做什么
int __cdecl main(int argc, const char **argv, const char **envp){ int v3; // eax int v4; // ebx int v5; // esi int v6; // ebx int v7; // ebx int v8; // esi int v9; // ebx int v10; // ebx int v11; // ebx int v12; // esi int v13; / ...
SMC加密技术
SMC加密技术最近做了个关于SMC加密的题目,这里打算讲讲这个算法
首先什么是SMC加密它又能干什么呢?SMC技术可以在一段代码执行之前对它进行修改,通过这一特性它就能实现将代码以加密的形式保存在可执行文件中,并在运行程序时动态解密。也就是说它是针对静态分析的。如果想要解开加密一般只能动态的跟踪或者用静态去找到加密部分进行解析。
分辨SMC的几个特点:1.#pragma code_seg(“.XXXX”) 是一条预编译指令,作用是告诉链接器下面的代码放入 .XXXX代码段中,对敏感代码进行保护
2.遍历找区段名字,然后进行先进行解密操作
3.最后进行异或和移位加密算法
SMC加密的加密实现步骤:1.首先对函数代码进行解密
2.调用这个函数
3.对代码进行再加密
PS:那么SMC就很容易去实现多层嵌套加密,也就是说需要解密第一个得到第二个函数再进行解密一直解密到最后一层SMC解密方法:1.首先找到被做为敏感代码保护的区段进行自解密
2.得到新的加密函数,再一次解密直到解完所有层的加密