
逆向
程序逆向
零溢出
网络安全爱好者、擅长Java
展开
-
[BUUCTF] 逆向 reverse1
前面的生成算法懒得看,直接debug,在if前打个断点看看Str2的值。菜单栏>Debugger>Selectdebugger。注意到下面的,我们输入的Str1要等于前面生成的Str2。选LocalWindowsdebuugger,按Ok,Startprocess,执行到断点处去看Str的值。......原创 2022-07-29 10:11:17 · 254 阅读 · 0 评论 -
[攻防世界 XCTF 4th-WHCTF-2017] BABYRE
不过由于网上的脚本版本都有些久远,可能已经不再兼容,可能会报一些NameErrornameByteisnotdefined,之类的错误,我们想写用新一点ida写使用脚本方法咋办呢。我们在ida中再走一遍亦或流程,把ida中的数据改为亦或后的数据,才能在ida中做进一步分析处理。看这里,点开Help,API文档,选择你想看的API,我对py比较熟,就写py好了。比如修改某个地址的byte数据可以如上操作,不过,,手动一个个点开改还是太麻烦了。judge为数据,作为函数使用,有点神奇。...原创 2022-07-28 16:44:02 · 594 阅读 · 0 评论 -
[XCTF] 逆向 hackme
先file看一下格式是个Linux 64位程序随手运行一下丢进IDA,一堆sub函数,没有看到main函数按Shift+F12进入字符串窗口搜索Give me the password 右键,查看交叉引用 跳转到sub_400F8E处 F5查看伪代码 主要逻辑代码就是上面的了最后我们要进入Congras那个分支Shift+E导出byte_6B4270的数据原创 2022-06-02 18:40:45 · 210 阅读 · 0 评论 -
[XCTF] [tu-ctf-2016] 逆向 re-for-50-plz-50
下载附件,照常看一下文件类型emmm,居然是mips架构的。本来还行运行看看的,丢进IDA,F5看伪代码int __cdecl __noreturn main(int argc, const char **argv, const char **envp){ int i; // [sp+18h] [+18h] for ( i = 0; i < 31; ++i ) { if ( meow[i] != (char)(argv[1][i] ^ 0x37) ) ..原创 2022-05-27 09:44:57 · 249 阅读 · 0 评论 -
[XCTF] 逆向 open-source
#include <stdio.h>#include <string.h>int main(int argc, char *argv[]) { if (argc != 4) { printf("what?\n"); exit(1); } unsigned int first = atoi(argv[1]); if (first != 0xcafe) { printf("you are wrong, s...原创 2022-05-24 16:05:54 · 241 阅读 · 0 评论 -
[XCTF] mobile app1
下载附件,用jadx-gui打开直奔入口 MainActivity.java,看代码逻辑String inputString = MainActivity.this.text.getText().toString();PackageInfo pinfo = MainActivity.this.getPackageManager().getPackageInfo(BuildConfig.APPLICATION_ID, 16384);String versionCode = pinfo....原创 2022-05-14 10:09:10 · 443 阅读 · 0 评论 -
[XCTF] reverse android-app-100
JADX打开,直奔入口MainActivity.java 这个类 重点:public native int IsCorrect(String str);public native int processObjectArrayFromNative(String str);public void onCreate() { this.b = EditText; this.e = Build.SERIAL; "设备标识,可能是想限制模拟器" this.d = 1143.原创 2022-05-16 12:52:35 · 450 阅读 · 0 评论 -
[XCTF] mobile EasyJNI
安装发现和上一题差不多,都是对输入的值做检验,看代码校验函数是ncheck,校验值是 new a().a( inputVal.getBytes() );根据等号补位的操作不难猜到这可能是类似base64的编码而ncheck又是一个native函数接下来用IDA对libnative的ncheck函数做分析。发现将传进来的字符串首先将前 16 个字符和 后 16 个字符交换位置,然后将这个新字符串两两一组互相交换位置,最后和MbT3sQgX039i3g==AQOoMQ原创 2022-05-15 20:16:40 · 156 阅读 · 0 评论 -
[XCTF] crypto cr3-what-is-this-encryption
题目Fady同学以为你是菜鸟,不怕你看到他发的东西。他以明文形式将下面这些东西发给了他的朋友 p=0xa6055ec186de51800ddd6fcbf0192384ff42d707a55f57af4fcfb0d1dc7bd97055e8275cd4b78ec63c5d592f567c66393a061324aa2e6a8d8fc2a910cbee1ed9 q=0xfa0f9463ea0a93b929c099320d31c277e0b0dbc65b189ed76124f5a1218f5d9...原创 2022-05-17 08:45:15 · 268 阅读 · 0 评论 -
[XCTF] [NJUPT CTF 2017] maze
下载附件,运行一下丢进IDA看伪代码__int64 __fastcall main(int a1, char **a2, char **a3){ __int64 v3; // rbx int v4; // eax char v5; // bp char v6; // al const char *v7; // rdi unsigned int v9; // [rsp+0h] [rbp-28h] BYREF int v10[9]; // [rsp+4h] [...原创 2022-05-25 15:55:32 · 275 阅读 · 0 评论 -
[XCTF] mobile apk逆向
运行,随手一输丢尽jadx看反编译代码。直奔onClick事件问题来了,两个输入框,但我们刚刚看到界面上只有一个。 那还有一个在哪呢。去看一眼主要布局文件好家伙,0宽度呢。藏起来了。那我们要怎么做呢,很简单。不用管他。直接把逻辑部分复制出来...原创 2022-05-30 09:10:21 · 285 阅读 · 0 评论 -
[pwnthebox] misc apache1
下载附件,打开日志文件一看。一堆请求里找到一部分带参数的,返回也只有5字节长度%7B是{,%7D是}提取出来就是flag{thIs_is_Easy_log}原创 2022-05-22 10:04:09 · 123 阅读 · 0 评论 -
[XCTF] [CSAW CTF 2014] csaw2013reversing2
直接打开确实是乱码,丢进IDA分析原创 2022-05-25 11:18:07 · 135 阅读 · 0 评论 -
[XCTF] [su-ctf-quals-2014] 逆向 Guess-the-Number
下载附件,看到Java图标惊了一下,看到后缀.jar,二进制逆向做多了,突然看到一道Java逆向还挺有意思。随手运行一下看看。这次丢进JADX注意到重要的一句代码if (1545686892 / 5 == Integer.parseInt(args[0])) { int i = 349763335 + 345736730; System.out.println("your flag is: " + XOR("4b64ca12ace755516c178f...原创 2022-05-27 09:26:11 · 174 阅读 · 0 评论 -
[XCTF] re2-cpp-is-awesome
拖进IDA看到触发此函数就会提示错误并退出此函数提示正确也就是输入的每一位都要对上,否则退出off_6020A0是一个字符串,qword_6020C0是一个int数组,所以就是按数组索引取字符串。把这两提取出来,写脚本s = 'L3t_ME_T3ll_Y0u_S0m3th1ng_1mp0rtant_A_{FL4G}_W0nt_b3_3X4ctly_th4t_345y_t0_c4ptur3_H0wev3r_1T_w1ll_b3_C00l_1F_Y0u_g0t...原创 2022-05-18 10:25:07 · 191 阅读 · 0 评论 -
[XCTF] reverse Hello,CTF
下载附件,IDA打开,看main函数伪代码给v13赋值strcpy(v13, "437261636b4d654a757374466f7246756e");提示用户输入,结果保存到v9sub_40134B((int)aPleaseInputYou, v6);scanf("%s", v9);遍历输入,任何用%x转成16进制,拼接到v10上 for ( i = 0; i < 17; ++i ) { v4 = v9[i]; if .原创 2022-05-20 09:25:12 · 350 阅读 · 0 评论 -
[XCTF] mobile esayjava
首先分别调用了a类和b类的有参构造方法创建了a和b的实例,然后用循环对flag内容每一位做处理,再重新拼接起来看一眼a和b的构造方法原创 2022-05-15 15:07:01 · 134 阅读 · 1 评论 -
[XCTF] [9447 CTF 2014] no-strings-attached
ida打开,看到main函数,f5int __cdecl main(int argc, const char **argv, const char **envp){ setlocale(6, &locale); banner(); prompt_authentication(); authenticate(); return 0;}int banner(){ unsigned int v0; // eax v0 = time(0); sra...原创 2022-05-25 10:21:51 · 150 阅读 · 0 评论 -
[XCTF] [suctf-2016] dmd-50
先看一下文件格式运行IDA打开,直奔main函数int __cdecl main(int argc, const char **argv, const char **envp){ __int64 v3; // rax __int64 v4; // rax __int64 v5; // rax __int64 v6; // rax __int64 v7; // rax __int64 v8; // rax __int64 v9; // rax _...原创 2022-05-26 09:26:20 · 172 阅读 · 0 评论 -
[ciscn 2019] n_1
日常checksec一下,nice 程序是64位然后什么都没有开,非常好ida64位打开程序,在frame_dummy函数处发现溢出,很明显我们只需溢出到v2把他的值覆盖掉成11.28125就过关了我们可以通过用v1减去v2的值来计算溢出的距离0x30-0x4,然后把11.28125转换成在内存对应的16进制输入就ak了from pwn import *io = remote('redirect.do-not-trust.hacking.run', 10072)res = 0x4原创 2022-05-17 19:16:26 · 200 阅读 · 0 评论 -
[XCTF] [BUUCTF-2019] Mysterious
下载附件,exeinfo pe看信息无壳,32位程序执行随便一点,无事发生。丢进ida,首先看到WinMain函数调出一个提示对话框,跟进DialogFunc看看。这个Text应该就是我们最终的flag了而Text的内容如图,应该为"flag{"+Source+"_Buff3r_0v3rf|0w}"继续看Source的值String是我们输入的值1. 我们输入的值长度<=62,如下,也就是说,String要等于122x...原创 2022-05-26 15:04:45 · 288 阅读 · 1 评论 -
[buuctf] test_your_nc
根据题目信息,直接nc靶机地址他提供的test文件其实没啥用,不用管,直接nc连上去就行,然后ls查看一下目录,找flagcat /flagflag{59012664-5da3-4e10-b7f9-f52fb9235897}原创 2022-05-18 16:15:41 · 1079 阅读 · 2 评论 -
[XCTF] reverse APK-逆向2
首先下载附件,是一个exe文件。用IDA打开,发现是个C#程序先看入口部分这里创建了一个本地tcp连接,地址是127.0.0.1,端口是0X9A69(31337)连接失败捕获异常catch中打印信息连接成功则发送flag字符串那么我们用python简单的创建一个http服务监听31337端口(http也是兼容tcp协议)python -m http.server 31337再次执行exe可以看到这次python服务器成功接受到了exe发送过来的f..原创 2022-05-16 15:44:31 · 502 阅读 · 0 评论 -
[XCTF] [ZSCTF] 逆向 game
下载附件英文的意思是,n是灯的序号,m是灯的状态如果第n个指示灯的m为1,则指示灯亮起,否则指示灯熄灭起初所有的灯都关上了现在可以输入n来更改其状态但是你应该注意一件事,如果你改变第N个灯的状态,(N-1)和(N+1)的状态也会改变当所有灯亮起时,flag将出现其实很简单,我只要每一个灯点亮一次,所有的灯,都会被点亮,n依次输入12345678,就看到flag了zsctf{T9is_tOpic_1s_v5ry_int7resting_b6t_oth...原创 2022-05-24 17:10:32 · 355 阅读 · 0 评论 -
[XCTF] [suctf-2016] 逆向 srm-50
下载附件,简单看一下信息无壳,64位运行起来看看要我们输入邮箱地址和地址注册。扔进IDA看看,看到WinMainF5看伪代码int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ return DialogBoxParamW(hInstance, (LPCWSTR)0x65, 0, DialogFunc, 0);}...原创 2022-05-27 10:17:51 · 107 阅读 · 0 评论 -
[XCTF] reverse re1
下载附件,用IDA打开打印三句话,并接受输入然后对输入做判断查看两种情况输出aFlag和aFlagGet的值但都不是我们想要的真实flag继续找找,注意到控制台输出的一个内存地址定位过去右键下面还有一个复制出来,反向,拼接在一起s1 = '0tem0c1eW{FTCTUD'[::-1]s2 = '}FTCTUD'[::-1]print(s1+s2)"""DUTCTF{We1c0met0DUTCTF}"""...原创 2022-05-18 15:40:14 · 186 阅读 · 0 评论 -
[XCTF] 逆向 re1-100
下载附件,先查看一下文件信息Linux64位程序,带调试信息。先随手运行一下看看 丢尽IDA64打开看来利用debug有点麻烦,那就看静态分析 我们的原输入通过一个confuseKey函数混淆这里的输入被分为了4个部分, 顺序是3、4、1、2,拆出来再按3、4、1、2的顺序排列就可以得到正常答案加上头尾{53fc275d81053ed5be8cdaf29f59034938ae4efd}.........原创 2022-06-04 09:21:55 · 216 阅读 · 0 评论 -
[XCTF] [SECCON-CTF-2014] Shuffle
看一下文件格式运行,什么都没有IDA打开,看伪代码程序后面会随机打乱字符串再输出。而原始字符串一眼就能看到SECCON{Welcome to the SECCON 2014 CTF!}原创 2022-05-26 08:47:35 · 183 阅读 · 0 评论 -
[XCTF] mobile easy-apk
直奔入口MainActivity.java,看一下onClick后干了啥if(Base64Encode(inputVal.getBytes()).equals("5rFf7E2K6rqN7Hpiyush7E6S5fJg6rsi5NBf6NGT5rs=")){ pass...}else{ wrong...}要通过自定义Base64编码之后的字符 = 5rFf7E2K6rqN7Hpiyush7E6S5fJg6rsi5NBf6NGT5rs=看一眼Base64New.Base6..原创 2022-05-16 10:51:10 · 269 阅读 · 0 评论 -
[XCTF] reverse IgniteMe
下载附件,IDA打开,直奔main函数如果输入的字符串不是'EIS{' 开头 '}'结尾,则退出然后if ( sub_4011C0(Str) )则提示成功进sub_4011C0()看一下我们传入的字符串经过一系列处理之后要等于GONDPHyGjPEKruv{{pj]X@rF如果字符区间为[97,122],则通过f(x)=x-32映射到值域[65,90]如果字符区间为[65,90],则通过f(x)=x+32映射到值域[97,122]那么我们就可以通过字符的.原创 2022-05-19 09:55:02 · 334 阅读 · 0 评论 -
[XCTF] 逆向 simple-check-100
下载附件,这里给出了3个文件给了多个平台的文件,看一下文件信息Linux64位程序,先用ida64打开,f5看看main函数的伪代码我们的目的就是要绕过check_key这部分伪代码对应的汇编代码献给check_key设置个断点。然后 我们就是要把eax修改为1就可以了。 flag_is_you_know_cracking!!!...原创 2022-06-04 10:38:30 · 122 阅读 · 0 评论 -
[XCTF] [2019_UNCTF] 逆向 re_66
下载附件,查看格式扔进IDA看看main函数int __cdecl main(int argc, const char **argv, const char **envp){ char s[240]; // [rsp+0h] [rbp-1E0h] BYREF char v5[240]; // [rsp+F0h] [rbp-F0h] BYREF memset(s, 0, 0x1EuLL); printf("Please Input Key: "); __isoc...原创 2022-05-26 16:38:44 · 293 阅读 · 0 评论 -
[XCTF] 逆向 EasyRE
下载附件,看一下信息,无壳,32位丢进IDA看一下信息原创 2022-05-29 15:09:48 · 386 阅读 · 0 评论 -
[XCTF] reverse getit
下载附件,用ida打开,看main函数。发现程序写了一个文件又删掉了。于是放到linux上用gdb调试,给remove打个断点,然后直接cat查看一下$ gdb getit...Reading symbols from getit...(No debugging symbols found in getit)(gdb) b removeBreakpoint 1 at 0x4005c0(gdb) runStarting program: /home/kali/ctf/get原创 2022-05-20 11:27:40 · 169 阅读 · 0 评论 -
[XCTF] reverse simple-unpack
题目菜鸡拿到了一个被加壳的二进制文件首先我们下载附件用查壳工具检测一下附件。f发现upx加壳了,接下来用upx工具脱壳,命令❯ .\upx.exe -d D:\download\ctf\simple-unpack Ultimate Packer for eXecutables Copyright (C) 1996 - 2020UPX 3.96w Markus Ober原创 2022-05-17 14:58:50 · 132 阅读 · 0 评论 -
[XCTF] reverse logmein
下载附件,用IDA打开,直奔main函数接受一个输入赋给s,然后和v8的长度进行比较,不一致则执行sub_4007C0();函数看看这个函数做了什么打印错误信息并退出程序如果没有退出,代码最后执行一个sub_4007F0();也就是说,我们要绕过所有sub_4007C0();,继续看main里面接下来执行了一个for循环,对我们输入的每一位和v8(:"AL_RT^L*.?+6/46)的每一位进行比较if ( s[i] != (char)(*((_BYTE *)&am原创 2022-05-17 16:05:11 · 275 阅读 · 0 评论 -
[XCTF 攻防世界] 逆向 answer_to_everything
题目sha1 得到了一个神秘的二进制文件。寻找文件中的flag,解锁宇宙的秘密。注意:将得到的flag变为flag{XXX}形式提交。下载附件,IDA打开,看main方法伪代码进入not_the_flagCipher from Bill Submit without any tags#kdudpeh不带任何标签提交,那应该就是kdudpeh,根据题目,再sha1一下,得到flag{80ee2a3fe31da904c596d993f7f1de4827c1450原创 2022-05-19 15:54:57 · 233 阅读 · 0 评论 -
[XCTF] 逆向 Reversing-x64Elf-100
首先,下载附件.re后缀的文件?照常看一下文件格式运行一下试试IDA打开,直奔Main函数,F5看伪代码__int64 __fastcall main(int a1, char **a2, char **a3){ __int64 result; // rax char s[264]; // [rsp+0h] [rbp-110h] BYREF unsigned __int64 v5; // [rsp+108h] [rbp-8h] v5 = __readfsqwo...原创 2022-05-27 09:11:40 · 582 阅读 · 0 评论