自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Todog的博客

对二进制安全感兴趣

  • 博客(98)
  • 资源 (1)
  • 收藏
  • 关注

原创 “天一永安杯”2023宁波市第六届网络安全大赛 re wp

这里会看高位是0还是1,0就会触发异常,我们的sum会进行异或。一直f7,循环就跳过。upx壳,被魔改了。so文件比对,base64直接解。发现有花指令,全patch掉。发现是RC4,但是有改动。然后就可以正常f5看了。

2023-05-28 23:34:35 723

原创 vivo2021千镜杯-移动安全-WP

vivo2021千镜杯

2023-05-17 09:18:12 251

原创 第四届“长城杯”信息安全铁人三项赛决赛RE-obfuscating

一道混淆题

2023-05-01 01:18:33 1729 1

原创 楚慧杯初赛—RE

第7届楚慧杯WP

2023-04-06 20:14:13 796

原创 第四届“长城杯”信息安全铁人三项赛 Junk&&language

xxx

2023-03-24 21:35:00 947

原创 Wust2022RE题解

无语的招新赛。

2023-01-08 15:05:22 414

原创 TLS回调函数实现反调试

Tls反调试

2023-01-08 14:59:13 612

原创 2022年春秋杯网络安全联赛-冬季赛RE部分题解

2022年春秋杯网络安全联赛-冬季赛

2022-12-25 21:05:57 1081

原创 贪吃蛇小项目

贪吃蛇

2022-11-29 23:14:27 392

原创 快速求N!

求n的阶乘

2022-11-29 23:08:37 228

原创 DASCTF NOV X联合出题人2022年度积分榜争夺赛 RE-部分题解

SMC&&TEA

2022-11-28 13:00:00 853

原创 DASCTF X GFCTF 2022十月挑战赛-re

安恒2022.10月赛-re题解

2022-10-24 12:00:00 681

原创 安恒9月赛re1

main里面先对输入进行异或在加1,进func1。有个花,jz,jnz,0xe8的花直接去。至此,异常处理完毕,主要看这个函数干嘛。所以在func1前面改成跳到这里。get it,太菜了re2寄了。让我们不等于这个进func2。这里要把表全体加个1。

2022-09-19 15:23:39 150

原创 2022DASCTF Apr X FATE 防疫挑战赛

2022DASCTF Apr X FATE 防疫挑战赛

2022-08-18 20:15:17 3064

原创 shellctf2022-writeup

CTF

2022-08-18 20:12:57 398

原创 2022强网杯-07-30-re-GameMaster

强网杯2022-GameMaster

2022-08-02 07:30:29 813 1

原创 HSCTF2022-re题解

HSCTF2022-re题解

2022-08-01 16:44:42 459

原创 [网鼎杯 2020 青龙组]singal

[网鼎杯 2020 青龙组]singal

2022-07-30 00:00:19 362

原创 DSACTF7月re

DSACTF——7月

2022-07-25 15:40:28 539

原创 WUST-CTF2021-re校赛wp

WUST-CTF2021-re校赛wp

2022-07-24 21:11:06 1543

原创 HSCTF2021 re

baigeiRSAimport libnumfrom Crypto.Util import numberfrom secret import flagsize = 128e = 65537p = number.getPrime(size)q = number.getPrime(size)n = p*qm = libnum.s2n(flag)c = pow(m, e, n)print('n = %d' % n)print('c = %d' % c)真白给直接写from

2022-05-17 22:53:12 529

原创 [SUCTF2019]hardcpp_一道混淆题,熟悉控制流平坦化

首先用IDA打开,发现有很多while(1),大量代码混淆其中利用defalt进行控制流平坦化去混淆找到主函数地址好了开始执行输入 python .\defalt.py hardCpp 0x4007E0等几分钟后会执行完毕顺便说一下符号执行的原理符号执行大概是将内存寄存器值当成未知变量就像设一个方程当成x往下执行遇到分支保存一下尝试各种分支执行到你想要的地方后续可以约束求解好了,我们再打开逻辑清晰很多了进行分析每...

2022-05-09 15:25:45 795 1

原创 WUST_2021校赛re-AskforU

进入程序,刚刚做出来,先按照我做出的顺序来把发现无法f5直接看汇编花指令,我们直接nop掉。为了平衡栈箭头指向的地方全部nop同样,还有另外2处,全部nop掉,然后创建函数可以f5看逻辑了int __cdecl main(int argc, const char **argv, const char **envp){ const char *Str1; // eax const char *Str2; // [esp+14h] [ebp-E4h] int i.

2022-05-03 02:48:15 574

原创 WUST2020部分WP

[WUSTCTF2020]B@se密文:MyLkTaP3FaA7KOWjTmKkVjWjVzKjdeNvTnAjoH9iZOIvTeHbvD== JASGBWcQPRXEFLbCDIlmnHUVKTYZdMovwipatNOefghq56rskxyz012789+/oh holy shit, something is missing...明显base64,少了4个A44=24次,可以先找出缺少的4个字符,然后排序挨个解密#include<stdio.h>#include&

2022-04-30 22:58:26 641

原创 wustctf2021 Crypto RSA1

描述from Crypto.Util.number import bytes_to_long, getPrimefrom secret import flagp, q = getPrime(1024), getPrime(1024)n = p * qe = 0x10001s = pow(1314*p - 520*q, n - p - q, n)c = pow(bytes_to_long(flag), e, n)print(f'n = {n}')print(f's = {s}')pri

2022-04-30 20:44:49 1091

原创 BUU刷题第一集合

第一题easyreida查壳直接看flag{this_Is_a_EaSyRe}第二题reverse1定位到Str2{hello_world}根据 for ( j = 0; ; ++j ) { v8 = j; v2 = j_strlen(Str2); if ( v8 > v2 ) break; if ( Str2[j] == 'o' ) Str2[j] = '0'; }把o换成0flag{hell0_w0r...

2022-04-29 23:57:13 1134

原创 [HDCTF2019]bbbbbbrsa

题目描述from base64 import b64encode as b32encodefrom gmpy2 import invert,gcd,irootfrom Crypto.Util.number import *from binascii import a2b_hex,b2a_heximport randomflag = "******************************"nbit = 128p = getPrime(nbit)q = getPrime(nb

2022-04-24 19:19:47 3267

原创 [ACTF新生赛2020]crypto-rsa3

题目描述from Crypto.Util.number import *import gmpy2import randome=65537p = getPrime(512)q = int(gmpy2.next_prime(p))n = p*qm = bytes_to_long(FLAG)c = pow(m,e,n)print(n)print(c)#n=17760650483649924697095903022687160888596932177821105

2022-04-24 15:29:46 1323

原创 [ACTF新生赛2020]crypto-rsa0

首先涉及MISC一个伪加密伪加密原理:zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。 一般来说,文件各个区域开头就是50 4B,然后后面两个字节是版本,再后面两个就是判断是否有加密的关键了方法:遇到504B0304,把其的第3、4个byte改成0000遇到504B0102,把其的第5、6个byte改成0000即可破解伪加密。直接解压from Cryptodome.Util.number import *import randomFLAG=#

2022-04-24 00:11:06 1230

原创 2022DASCTF Apr X FATE 防疫挑战赛 CRYPTO easy_real

逆向一道都不会,寄了。只做了密码的签到题题目描述import randomimport hashlibflag = 'xxxxxxxxxxxxxxxxxxxx'key = random.randint(1,10)for i in range(len(flag)): crypto += chr(ord(flag[i])^key)m = crypto的ascii十六进制e = random.randint(1,100)print(hashlib.md5(e))p = 6431...

2022-04-23 19:24:06 903

原创 IDA在linux下的动态调试的准备

记录一次ELF文件在linux下的调试,以*CTF2022的 simplefs为例。我们已经知道是ELF文件,并且确定到加密函数v4的值显得尤为重要,v4经过一个函数加密而来。我们进入我们难以分析,使用IDA动态调试启动我们的虚拟机一定要是Linux的,确保这个2个文件在虚拟机,这2个文件在IDA目录下的dbgsrv中,直接复制到虚拟机即可现在IDA下入一个断点在虚拟机中chmod a+x ./linux_serverx64 改变文件属性...

2022-04-22 22:35:41 2156

原创 网络安全空间导论密码学作业实现

好久之前写的,不过我这代码也确实没啥长进凯撒加密#include<stdio.h>#include<string.h>void m();//菜单void getinput(char input[]);//获得字符串void encrypt(char eninput[],char input[],char map[]);//加密void decode(char deinput[],char input[],char map[]);//解密int main(){

2022-04-18 23:59:16 4513

原创 2022DASCTF X SU 三月春季挑战赛 easyre

有壳aspack,一般遇到都是upx,网上搜了aspack脱壳工具都没脱成功,使用手脱手脱aspcak打开od下面使用ESP定律法进行脱壳push压栈了,我们观察到esp中的值变红了,改动了。在内存窗口中转到下这个地址下硬件断点运行软件,断到了。接着f7pop出栈,我们发现有个大规模跳转,应该就是oep了调用api,是oep准备dump一下使用Lord Pe先修正大小,然后dump这个时候,我...

2022-04-06 11:46:58 577

原创 wust-ctf2021校赛-re-findit 一道smc题

无壳,32位进去直接f5看main函数我们注意到这个把ssd的地址给了we地址存储的数据被异或了写ida的idc进行异或ida的idcpy可以写我这里用的是idc我们要找函数尾巴pop ebx,pop esi,pop ebp retn 这些标志函数结尾直接限定给出定义函数到这个函数尾,有些看不懂的数据直接,按c强行转换成汇编指令全部转换后可以回到ssd,这个时候可以看f5看伪代码函数加载出来了...

2022-03-27 00:53:27 802

原创 1464. 数组中两元素的最大乘积

原本用冒泡排序直接写的int maxProduct(int* nums, int numsSize){ int max = 0; int i,maxs = 0; for(i = 0;i<numsSize;i++) { for(int j = 0;j<numsSize-1-i;j++) { if(nums[j]>nums[j+1]) { int temp; temp

2022-03-27 00:23:22 1134

原创 GWctf-2019-pyre

拿到文件pyc,直接反编译得到源码l = len(input1)for i in range(l): num = ((input1[i] + i) % 128 + 128) % 128 code += numfor i in range(l - 1): code[i] = code[i] ^ code[i + 1]print codecode = [ '\x1f', '\x12', '\x1d', '(', '0',

2022-03-12 16:11:21 834

原创 汇编1 c中汇编

汇编函数调用push 参数1push 参数2call 内存地址或者mov ecx,参数1mov edx,参数2call 内存地址2 ,c语言中的函数调用函数名(参数1,参数2)总结:函数名就是编译器给起的内存地址的别名全局变量1,编译的适合就已经确定了内存地址和宽度,变量名就是内存地址的别名。2,如果不重新编译,全局变量的内存地址不变。游戏外挂中找的基址,其实就是找全局变量3,全局变量任何程序可以改,是公用的。(CE)局部变量1,其函数内部申请

2022-02-20 21:57:01 3250

原创 OD-bug系列

1,od(IDAFicator.dll)与硬件断点冲突

2022-02-20 21:56:00 277

原创 硬件hook

硬件hook的技术1,用来脱壳。2,游戏辅助。3,反调试。什么是线程?什么是EIP?EIP是指向下一个执行的代码,是寄存器进程是不能执行的,不能跑起来。我们的进程能执行是线程来进行辅助。宿主(进程)和寄宿者(线程)二者关系。cpu存在线程,在操作系统,线程是全局概念。线程上下文。即时不时运行。#include < iostream > #include <windows.h> using namespace std;int main() { C

2022-02-20 21:54:20 1077

原创 逆向疑问解集

逆向疑问解集1,为什么OD不能搜到字符串,而IDA能搜到?(干死只会搜字符串的小白)OD搜索字符串功能的实现是一个插件(本身不具备),我用的吾爱破解的大佬写的。大佬的插件功能是findascll函数中,它会取得反汇编中内存的模块的地址。判断push,lea,mov;例如找到push了,push ebp它会判断ebp里面是不是字符串。而判断字符串的标准是是否以\0结束,是的话则是字符串。如果是个结构体,里面有字符串则无法读取,例如01 00 00 00 d7 a2 b2 e1 ca

2022-02-20 21:52:29 1048

c语言结构体简单实现通讯录功能

实现语言c++,简单结构体训练,穿插一些简单算法思想。 编写通讯录 实现添加,展示,删除,查找,修改,清空,退出系统。

2022-02-01

空空如也

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

TA关注的人

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