自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

转载 翻译论文转载

基于神经网络的机器学习技术在很多领域均取得了重要成果。模型训练使用的大型数据集经常包含敏感信息。这些模型不应公开这些数据集中的私有信息。为了达到这个目标,作者针对模型学习和差分隐私开销分析,研究了新的算法技术。作者通过实验验证了,在适度的隐私预算、可控的软件复杂度、训练效能和模型质量限制下,算法依然可以训练非凸目标的深度神经网络。本文证明了在满足差分隐私的条件下对深度神经网络进行训练,关于具有很多参数的模型的隐私损失较小。

2024-04-27 10:54:03 11 1

原创 【无标题】

基于神经网络的机器学习技术在很多领域均取得了重要成果。模型训练使用的大型数据集经常包含敏感信息。这些模型不应公开这些数据集中的私有信息。为了达到这个目标,作者针对模型学习和差分隐私开销分析,研究了新的算法技术。作者通过实验验证了,在适度的隐私预算、可控的软件复杂度、训练效能和模型质量限制下,算法依然可以训练非凸目标的深度神经网络。本文证明了在满足差分隐私的条件下对深度神经网络进行训练,关于具有很多参数的模型的隐私损失较小。

2024-04-27 10:49:19 820

原创 D3ctf-D3MUG(u3d

第一次遇到u3d,寄!用ilcppdumper dump出dll文件选择运行Il2CppDumper.exe并依次选择il2cpp.so的可执行文件和global-metadata.dat文件dump出的dll文件在DummyDll里面。⽤dnspy查看AssemblyCSharp.dll,定位到关键函数GameManager.NoteHit然后用ida打开lib2cpp.so文件 运行我们ilcppdumper里面的ida_py3脚本。然后再点击script.json然

2022-03-08 01:00:27 4595

原创 JEB动态调试debug模式

首先安装adb,将adb与模拟器连接(我是用的安装的夜神模拟器,直接使用了夜神自带的adb,我的模拟器与网上常说的不一样)我的ip是。在 CMD 中输入adb shell am start -D -n 包名/入口activity名adb shell am start -D -ncom.ph0en1x.android_crackme/com.ph0en1x.android_crackme.MainActivity如图即为成功。...

2022-03-06 10:48:25 3855 1

原创 -异常处理-

简介:异常分为俩种,CPU产生的异常(除0,缺页)和软件模拟产生的异常来自《加密与解密》SEH:SEH是Windows操作系统提供的异常处理机制,在程序源代码中使用_try、__except、_finally关键字来具体实现。TEB/T:typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; //异常的链表 PVOID StackBase;

2022-03-03 22:54:51 578

原创 反调试总结

目录PEB:函数检测:数据检测:PEB:利用PEB结构体信息可以判断当前进程是否处于被调试状态。其中与反调试密切相关的成员。+0x002 BeingDebugged : UChar 调试标志+0x00c Ldr : Ptr32 _PEB_LDR_DATA 进程加载模块链表+0x018 ProcessHeap : Ptr32 Void+0x068 NtGlobalFlag : Uint4B函数检测:sDebuggerPresent():函数检测就是通..

2022-03-03 18:50:34 557

原创 花指令记录

_asm{ call sub2 _emit 0xEB #emit就是在当前位置直接插入数据, 0xEB 对应的汇编指令是 jmp 指令 jmp label2 sub2: add dword ptr[esp],1 retnlabel2:}大概逻辑:call sub2函数 eip指向 0xeb, 后会将 eip 的值 push 入系统栈然后跳转到 sub2:[esp]也就是栈顶,栈顶的数值+1.所有reten之后直接执行jump labe12。例子:call指令和相应的函.

2022-03-01 23:22:04 306

原创 buu-crypto-yxx

密文打开明文打开,毫无头绪:winhex打开查看编码,然后异或a="lovelovelovelovelovelovelovelove"b=[0x0A,0x03,0x17,0x02,0x56,0x01,0x15,0x11,0x0A,0x14,0x0E,0x0A,0x1E,0x30,0x0E,0x0A,0x1E,0x30,0x0E,0x0A,0x1E,0x30,0x14,0x0C,0x19,0x0D,0x1F,0x10,0x0E,0x06,0x03,0x18]flag=""...

2022-03-01 21:47:13 134

原创 hardasm

AVX2指令集逆向,主要解题思路是使用idapython脚本逆向求解先把ymm0 - ymm1寄存器赋值再用 IDAPython 统计加密用到的指令:ea=0x140001081 # 起始地址opcode=set() # 利用集合自动去重while True: if ea>=0x0140007F17: break opcode.add(print_insn_mnem(ea)) ea=next_head(ea) # 到达下个指令的地址print(opcode)得到

2022-02-24 22:12:51 279

原创 -apk-

Android是一种基于Linux 内核和其他开源软件的修改版本的移动操作系统,由一个被称为开放手机联盟的开发者联盟开发,并由Google 提供商业赞助。android平台,运行在Dalvik虚拟机上。Androidapk结构:APK文件其实是zip格式,后缀名被修改为apk,可以用解压软件打开,结构如下:AndroidManifest.xml是程序全局配置文件,描述应用的名字、版本、权限、引用的库文件等信息。apk中的AndroidManifest.xml是经过压缩的,可以通过AXM...

2022-02-23 21:10:25 1463

原创 vnctf——cm1

从main函数开始看,发现在check的时候加载了assets⽬录中的⼀个dex⽂件,跟进发现在FileUtils⾥⾯。主要逻辑在copyfile函数之中,进行异或处理,注意这里的以1024⼀组进⾏解密就可以。key=b'vn2022'f1=open(r'ooo','rb+')f2=open(r'dex','wb+')while True: t=[] s=f1.read(1024) if len(s)==0: break for i i..

2022-02-17 20:56:42 3108

原创 vnctf——babyvm

深入了解 vm虚拟机逆向这是一道golang vm题,64位idapro 7.7 对于go反编译进行了优化,可以直接看。分析主函数,unk_B9D8A0为我们的opcode段根据部分函数 猜测a7就是虚拟机的寄存器个数,并且为21.推测栈的大小为0x3e8struct func{ void *call; vm *ptr;};struct REG{ _DWORD R[21];};struct vm{ REG reg; _DWORD Memor

2022-02-17 16:43:35 3329

原创 DFS算法走迷宫(python实现)

从@走到!31*31的迷宫map = [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1], [1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,0, 0, 0, 0, 0, 1], [1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,...

2022-02-16 12:54:27 1928

原创 pyc文件反编译

pyc文件结构文件格式:03f3 0d0a magic表示python的版本信息,此处03f30d0a是python2.7的标识;6206 b160 时间戳,编译的时间信息63 Blockde的开头后4字节0000 0000 :argcount参数个数后4字节0000 0000: nlocals局部变量个数后4字节1b00 0000: stacksize栈空间大小后4字节4000 0000:flags73:类型string3501 0000 字节长度(小端

2022-02-13 10:48:27 8986

原创 Hgame 2022 Answer‘s Windows

查壳用 QT 写的图形界面f12 搜索关键字符串找到相应的主函数sub_140001F90 就是加密函数查看发现为base64换标加密,查看表的引用:注意这里有个调试判断我们把这里的jnz改成jz达到我们想要的结果这里变成if动调,这里的v22就是新的basetable!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`...

2022-02-12 15:03:52 756

原创 [GWCTF 2019]babyvm

系统学习vm虚拟机逆向64位vm的题目找到主函数分析sub_CD1函数:sub_B5F代表mov操作,其中 0xE1,0xE2...代表不同的寄存器。sub_A64是一个异或操作xor。sub_AC5是一个读取操作并判断他的长度是否等于21sub_956是空操作nop。sub_A08 两个数相乘操作mulsub_8F0是一个交换操作swapsub_99c线性运算该函数是对6010A0操作码内容的执行,一直到0x...

2022-02-10 21:23:58 1395

原创 [HDCTF2019]MFC

放入peid查看 发现vmp的壳。什么是MFC我们用xspy分析,将放大镜对准分析的窗口。注意到有一个OnMsg有点奇怪,他并不是以宏的形式出现,应该是个作者自定义的消息。写个程序向MFC程序发送这个消息#include <stdio.h>#include <stdlib.h>#include <Windows.h> int main(){ HWND h = ::FindWindowA(NULL, "Flag...

2022-02-10 15:09:22 414

原创 crypto——Chinese Character Encryption

本质考察ascii码密文为一段奇怪的汉字,解密方法是,把汉字的拼音里所有字母和声调(用数字 1-4 代替,轻声不作处理)的 ASCII 码加起来,然 后对 128 取余,就能得到对应明文的 ASCII 码。陉萏俦蘭貑謠祥冄剏髯簧凰蕆秉僦笆鼣雔耿睺渺仦殣櫤鄽偟壮褃劳充迧蝔镁樷萾懴雈踺猳钔緲螩蝒醢徣纒漐.....import pypinyindef decrypt(s): result = "" for c in s: result += chr(sum(map(ord, py

2022-02-04 21:04:42 121

原创 crypto-RSA

题目来源2022HGAMEimport refrom math import ceilfrom Crypto.Util.number import getPrimefrom libnum import s2nfrom secret import flagflag_parts = list(map(s2n, re.findall(rf".{{,{ceil(len(flag) / 3)}}}", flag)))print("# task1")m = flag_parts[0]e = 6

2022-02-04 20:56:10 1367

原创 crypto——明文攻击

打开压缩包得到两个文件夹和两个文件,其中 encrypt.py 中是加密函数的代码, flag.enc 中是被加密 的秘钥, original 中是被打乱的小说片段, encrypt 中是加密并打乱后的小说片段。 分析代码可知,加密方法使用的是维吉尼亚密码,所以每次加密只会加密字符串中的字母,所以我们就可 以通过剩下没加密的字符来匹配明文和密文。 将明文和密文匹配之后,我们可以通过已知明文攻击快速的得到维吉尼亚密码的秘钥。 使用得到的秘钥解密 flag.enc 文件即可得到秘钥。def decrypt

2022-01-30 20:38:06 3396

原创 crypto-Matryoshka

套娃!拿到手是这么一段符号 试着按照 .. -/ 的顺序转成摩斯但是摩斯还是不好翻译 ,倒叙一下得到Hex:46,66,42,75,66,45,46,6e,6d,4c,73,36,44,33,73,69,59,74,4c,36,58,32,70,34,69,4e,30,63 ,64,53,6c,79,6b,6d,39,72,51,4e,39,6f,4d,53,31,6a,6b,73,39,72,4b,32,52,36,6b,4c,38,6 8,6f,72,30,3d也..

2022-01-30 20:01:05 661 2

原创 Crypto-Danciling line.(ascii 图像

题目:一个字符的 ASCII码有 8 位,图像中的每两个黑色色块间的路程也为 8 步。从左上角的色块出发,向右为 0,向下为 1,连起来就是对应字符的 ASCII 码。import numpy as npfrom PIL import Image# 判断下一步往哪走def search(arr, x, y): if y + 1 < arr.shape[1] and (arr[x, y + 1, :] != 255).all(): return x, y + 1,

2022-01-30 19:41:59 370

原创 使用Blackdex脱壳记录

环境:夜神模拟器​​​​​​项目地址首先下载相应的apk文件安装在模拟器中打开选择 要脱壳的软件。这里脱壳成功。我们用adb从安卓模拟器中提取出来adb pull /storage/emulated/0/Android/data/top.niunaijun.blackdexa64/dump E:\dump得到dump下来的dex文件。再使用jex2jar将其反编译为jar文件d2j-dex2jar.bat cookie1.dex生成相...

2022-01-27 19:42:10 5987

原创 frida使用学习

环境:frida 15.1.14 夜神模拟器 某不知名apk打开安卓模拟器打开frida-server监听adb devices #查看设备adb connect ****** #adb shellcd /data/local/tmp./frida-server在安卓模拟器上运行要脱壳的软件。在此文件夹目录下运行cmd程序.执行 python main.py会在当前的文档下面生成一个新的文件夹这就是脱壳后的结果。...

2022-01-27 16:21:01 3798

原创 [ACTF新生赛2020]fungame

32位无壳简单异或,解出来是Re_1s_So0_funnybut没有那么简单,这里只有16字节。继续分析:这里出现了栈溢出: 4013BA函数的参数source 也就是v4(我们的flag) 大小为15字节 而Destination数组为12字节。最后三个字节被当作返回地址返回,所以调用了相应的函数找这个函数,看下面的全局变量x,交叉应用发现新函数函数名字 40233D就是溢出的字符,注意大小端序应该为3D 23 40 再加上base64解密得到fl...

2022-01-20 16:44:53 411

原创 BUU[SCTF2019]Who is he

unity用dnspy打开Assembly-CSharp.dll,分析主要加密分析加密函数,DES加密(key和vi一样),和Base64根据已知数据解密 ,但是在C#中,字符串默认是Unicode字符串,所以转成字节数组,在每个字符字节后都要加一个"\x00"from Crypto.Cipher import DESimport base64d_flag = b'1Tsy0ZGotyMinSpxqYzVBWnfMdUcqCMLu0MA+22Jnp+MNwLHvYuFT.

2022-01-19 21:32:20 259

原创 [SCTF2019]creakme (SEH异常处理机制,AES)

32位无壳,放入IDA GetModuleHandleW 获取当前应用程序模块首先分析一下 sub_402320函数,读取当前进程,匹配他的区段为 .SCTF查看第一个函数的汇编代码,发现call了一处函数。但是并没有反编译再来观察一下他的函数结构图,左半部分没有前驱调用,所以左半部分没有编译出来,查壳函数开头,发现_except_handler4 这是SEH异常处理的标志参考:SEH的反调试原理菜鸟版15pb调...

2022-01-19 19:30:16 939

原创 BUU[SCTF2019]Strange apk

分析hello.c文件可以理解为安卓的SMC_0_ 函数,将读取的每一位与 “syclover”循环 异或_ 函数 将读取进行 _0_ 函数操作,并且写入一个新文件读取 getAssets下的文件。对 data 文件进行上述操作,并命名为apk 文件,加入线程中我们来分析对data进行操作,脚本:s = "syclover"count = 0with open('data', 'rb') as f: while (1): ...

2022-01-18 22:41:13 1740

原创 查看安卓模拟器 CPU版本

环境: Windows10 ADB工具、夜神模拟器查看模拟器的端口号。我的端口号为: 127.0.0.1:59865adb devices连接模拟器adb connect 127.0.0.1:59865进入Android底层(服务器)adb shell查看CPU版本getprop ro.product.cpu.abi...

2022-01-18 12:55:44 2144

原创 --杂记--

补码:补码计算法定义:非负数的补码是其原码本身;负数的补码是其绝对值的原码最高位符号位不变,其它位取反,再加1。左移 右移 注意溢出(a&0x3f) << 2左移2位,与上0x3f 也就是 0011 1111 将最高两位置为0同理右移2位 &0xfc 也就是 1111 1100 将最低两位置为0...

2022-01-17 11:14:50 282

原创 buu-[RoarCTF2019]polyre(控制流平坦化,虚假控制流程)

这题一开始拿到人看麻了(不会),写篇wp记录新题型这么一大大大串的函数图,是经过OLLVM 的控制流平坦化混肴.控制流平坦化(Control Flow Flattening)的基本思想主要是通过一个主分发器来控制程序基本块的执行流程,例如下图是正常的执行流程:经过控制流平坦化后的执行流程就如下图:混淆代码块之间的逻辑,将其之前的逻辑混肴成switch嵌套循环,增加分析难度。下面我们需要使用 angr符号执行去除控制流平坦化环境ubuntu20.4defalt.py脚本..

2022-01-16 20:05:54 2832

原创 BUU——WMCTF2020 - easy_re

无壳,64位PE程序,放入IDA64静态分析一波,看不出个所以然,IDA动调,没有找到相应的字符串。去查询题目名 perl一个比较小众的语言,我们这里应该是不带参数的情况。看雪文章解压call有字符串scriptx64dbg搜索 script直接点前三个 SCRIPTname就出来flag。。。flag{I_WAnt_dynam1c_F1ag}总结:注意题目的名称以及一切有用信息。动调多尝试od参考:https://blog.csdn...

2022-01-16 13:59:11 293

原创 密码学绪论简记

密码学是信息安全的基石,是信息安全的核心技术。(密码学绝不是保证信息安全的唯一技术,确保信息安全,除了技术之外,管理也是非常重要的一个方面)。发展历程:古典密码学阶段(这一阶段基本上可以说是一门技巧性很强的艺术,而不是一门科学。1949 年,香农发表了《保密系统的通信理论》,为密码学奠定了坚定的理论基础,使密码学真正成为了一门学科。1976《密码学新方向》的发布,提出了一种全新的密码设计思想,导致了密码学史上的一场革命,开创了公钥密码学的新纪元。1977年美国国家标准局NBS正式公布..

2021-12-07 14:34:46 5904 1

原创 古典密码简记

概述古典密码只是对字母进行变换,而现代密码算法是对比特流进行变换。古典密码技术比较简单,通常 采用手工或机械操作来对明文进行加密和解密的。(例:第二次世界大战密码转轮机属于机械操作)古典密码技术根据基本原理大体上可以分为三类:传统隐写术,替换密码技术和换位密码技术。传统隐写传统隐写术是将秘密信息隐写于非秘密或者不太秘密的信息中的方法,是信息隐藏技术之一。(也可用在数字水印)替换密码技术单子附表替换密码技术:单字符单表替换技术是对明文中所有字符都使用一个固定映射。密钥确定之

2021-12-06 19:54:54 655

原创 密码学的应用简记

电子商务的交易协议:安全套接层(SSL)协议SSL介绍SSL只需要通过一次握手过程,就可以建立客户与服务器之间的一条安全通信的通道。SSL并不是专为支持电子商务而设计。它只支持两方的认证。安全电子交易(SET)协议SSL介绍是一个 为在Internet上进行在线交易而设立的开放的电子交易规范。用于划分与界定电子商务活动中的消费者,商家,银行,信用卡组织之间的权力义务关系,它可以对交易各方进行认证,可以防止商家欺诈。还解决了SSL协议所不能解决的交易双方的身份认证问题。SET协

2021-12-05 13:42:11 292

原创 信息隐藏的原理与应用

概述随着数字媒体和互联网的普及,数字媒体产品的版权保护已成为当前迫切需要解决的问题。信息隐藏技术能为数字信息所有者的权益提供有力的保护。值作数字媒体,需要资金,创意,时间等等。传播数字媒体,成本基本为0信息隐藏技术利用人类感觉器官对数字信号的感觉,将一个消息隐藏在另一个消息之中,实现隐蔽通信或隐蔽标识。隐藏了秘密信息的存在,表面上看起来与一般的非保密信息没有区别,因而十分容易躲过攻击者的破解。加密技术与信息隐藏技术的区别:加密技术与信息隐藏技术是确保数字信息安全的两种主要技术。但是传

2021-12-04 14:30:46 8029

原创 Have a tea -(极客大挑战(SMC,fork

无壳,IDA打开64分析start函数。 smc⾃解密,通常处理smc⾃解密有两种⽅法,如果是⽐较简单的⾃解密, 我们可以直接使⽤idapython写⼀个脚本即可解决,如果碰⻅运算不太好实现的smc⾃解密,⽐如这⾥。尝试动态调试,我们要在下⽅的jmp指令处下断点jmp跳转右键analyzed 选Force 把红色代码部分P键定义成函数F5起始地址,查看到main函数,猜测后面为init函数优先查看init函数(先于main函数执行部分main函数...

2021-12-04 01:58:21 518

原创 密钥管理概述

现代密码体加密和解密算法是可以公开评估的,整个密码系统的安全性并不取决于对密码算法的保护或是对加密设备等的保护,而是取决于密钥的安全性。层次化的密钥结构:按照密钥的作用与类型及它们之间的相互控制关系,可以将不同类型的密钥划分为1级密钥,2级密钥......n级密钥,从而组成一个n级密钥系统。系统使用一级密钥K1通过算法f1保护二级密钥。使用二级密钥K2通过算法f2保护三级密钥。使用n级密钥通过算法fn保护明文数据。最下层的密钥kn也叫工作密钥或数据加密密钥,它直接作用于对明文数据

2021-12-03 21:57:44 6007 2

原创 认证理论与技术——身份认证技术

概念:身份认证的作用是对用户的身份进行鉴别,能保护网络信息系统中的数据和服务不被未授权的用户访问。认证及认证模型:一方面保证信息的安全性,另外一方面保证信息的完整性,有效性,要搞清楚与之通信的对方身份是否真实。认证是指核实真实身份的过程,是防止主动攻击的重要技术之一,认证技术的作用主要是弄清对象是谁,具有什么样的特征,用户必须提供他是谁的证明,它是某个个人,某个机构的代理等,事实上是“身份认证”。认证协议: 认证协议就是进行认证的双方采取的一系列步骤,涉及两个实体:示证者P和验证者V,.

2021-12-02 15:50:07 3231

原创 数字签名简记

概念: 1976年Diffie和Hellman提出电子签名的概念,目的是通过签名者对电子文件进行电子签名,使签名者无法否认自己的签名,同时别人也不能伪造或复制签名,从而实现与手写签名相同的功能,具有与手写签名相同的法律效力。数字签名就相当于社会中的身份证,用户在进行电子商务活动时可以通过数字证书来证明自己的身份。数字证书当中包含了用户的基本信息及公钥信息。利用数字证书上的相关信息,可对数字证书的真伪进行验证。目前数字签名技术的研究主要集中在基于公钥密码体制的数字签名。原理:数字签名一般都..

2021-12-01 11:47:41 466

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除