![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
BU reverse
reverse
theThreeDay
这个作者很懒,什么都没留下…
展开
-
whereisflag
刚打开都是数字,一脸懵,试着换成char类型,然后大端序拼接得到flagCnHongKe{849bc02af213b4d}原创 2021-03-07 14:04:08 · 545 阅读 · 0 评论 -
Reverse1
打开发现有壳,查壳upx,脱壳逆序是v19最后一位赋值给v4,然后*v4-- 前移题目逻辑是,输入一段长度11的字符串,然后逆序,接着每一个成员+7,最后进行异或操作,再减去1,得到off_409030里的值脚本a=[0x1E, 0x5D, 0x53, 0x77, 0x5E, 0x50, 0x0E, 0x57, 0x7C, 0x47, 0x07]#print(a)str1="%+$-4-8+7=?"xors=[37 ,43 ,36 ,45 ,52 ,45 ,56 ,43 ,55 ,6原创 2021-03-07 13:48:31 · 491 阅读 · 0 评论 -
[GWCTF 2019]xxor
看主函数程序逻辑很简单,输入字符,程序变换字符,最后核对\最下面得if语句sub_400770 就可以得到变换后得字符-548868226 ,550153460 ,3774025685 ,1548802262 ,2652626477, -2064448480中间的变换操作sub_400686比较简单得异或操作,逆运算只需要把+改成-就可以了前面得这些赋值也就是我们输入得字符赋进去得脚本#include <stdio.h>int main(){ unsigned原创 2021-02-08 14:04:43 · 292 阅读 · 1 评论 -
[WUSTCTF2020]level1
无壳,64位,这是一个文件读写得代码,看懂就会读取文件,进行位运算题目还给了一个output.txt文件,数了是19个,和for循环正好对应,这应该就是进行位运算后得到得数字了,很简单,写个脚本逆回去大概得到的就是flag了脚本#include <iostream>using namespace std;int main(){ int index = 0; char flag[44]; int ptr[]={0,198,232,816,200,1536,300,6144,原创 2021-02-05 18:31:30 · 133 阅读 · 0 评论 -
[V&N2020 公开赛]CSRe
先查壳查了后得知是NET混淆,就是一种防反编译的方法这边需要俩个工具de4dot 用来去混淆,dnSpy是针对NET类的反编译下载地址都是在这里下的,自己可以搜去混淆,把de4ot拖入cmd, 空格 -f 空格,拖入题目文件,最后得到一个新的文件,新的文件用dnspy打开这时候你会看到很多代码,很多人可能会找不到,这边有个main函数,直接点进去就可以进入最下面就是flag了,smethod_0函数在上面,看一看虽然看不懂哈,但是这个SHA1还是有点眼熟的,是个加密方法,直接把fl原创 2021-02-05 17:32:41 · 139 阅读 · 1 评论 -
[MRCTF2020]Transform
64位ida进入主函数这个程序逻辑很简单1.首先告诉我们flag是33位2.对flag进行加密处理,就是赋值加异或3.比较,也就是告诉了我们加密后的字符思路这里已知的几个字符串dword_40F040, byte_40F0E0b,c设 a = byte_414040,b=dword_40F040,c=byte_40F0E0,输入的字符串为flag;从题目里得到 加密代码a = flag[b[i]];a ^= b; c == a即c = a ^ b解密就反过来 ,因原创 2021-02-02 13:57:59 · 696 阅读 · 0 评论 -
2020]usualCrypt
32位载入字符串没有找到有用信息进入主函数sub_403CF8看到file,猜是读取文件的,没什么用sub_401080这边是base64加密,从代码看不出来的话,这边的密码表可以点进去,虽然是EOA0,但E0AA的空间和他是连在一起的,所以这俩个合在一起就是密码表,然后看到那个 ‘+/’,这些符号应该就可以看出来base64加密了sub_401000base加密开头的函数,就是交换字符,从第6个开始,往后数到15因为这俩个空间是连在一起的,所以可以当作一个数组ABCDEFGHI原创 2021-02-01 21:18:21 · 223 阅读 · 0 评论 -
[BJDCTF2020]easy
32位ida打开,主函数没有发现什么有用的信息查看字符串也没有新的发现,但是在函数列表里,在main函数前面有一个函数,ques没有执行(程序都是从main函数往下执行的),查看ques我这里是IDA7.5版本,我看了一些别人的wp,伪代码不太一样.然后这里的一些数字被我转化成char了,所以写过迷宫题的看到 ‘*’一般都会猜测这是个迷宫,这里先想着吧迷宫写出来思路大致看了下代码,有俩个地方LOWORD,HIDWORD,不懂这里查了下资料for循环50次,就代表一共有50个数字,然原创 2021-02-01 11:58:12 · 206 阅读 · 0 评论 -
BUU_re_[V&N2020 公开赛]strangeCpp
64位,进入ida,查看字符串,我是从这里跟进来的,进入主函数,有一堆putchar,一般来说,这就是输出的是flag,猜的,纯属猜测进入字符看一看,注意后面的DATA XREF 就会发现.这些字符都用了同一个函数,但是有一个用的是另外一个,这个就很奇怪了对吧,就顺理成章的进去看一看发生了什么sub_140013580这里从下往上看 result == 607052314然后 result = sub_140011384((unsigned int)dword_140021190)猜测这个原创 2021-01-30 14:15:45 · 98 阅读 · 0 评论 -
ctf 2019 re
刚开始没注意,直接进的64位,没发现有壳,里面也有俩个函数,只是看不懂,然后发现字符串也没有,就查了下壳,发现是upx壳,就脱壳顺着字符串看到了很显眼的corret,跟进去(双击,然后选择corret字符串,进去相应的函数)这边这个if语句的判断很明显啊,就点进去看了看,就是一大串乘法思路:很简单,除回去就出来了, 这个数量很大,我是用word查找替换做的中间少了一个[6],因为只有一个数,就从0开始一个个试的,是1,脚本#include <iostream>using n原创 2021-01-29 12:40:11 · 506 阅读 · 0 评论 -
login
附件给了一个网页,没想到逆向也有这种题目,直接进入网页打开源代码然后就现学现卖,查几个函数getElementById() ----返回指定id元素fromCharCode() ----将 Unicode 编码转为一个字符charCodeAt() -----返回字符串第一个字符的 Unicode 编码,也可以指定,题目里这是指定了第0位大致看了一下,除了加密代码看不懂,代码流程是,读取字符串,加密,最后的的if语句意思是,加密后的字符串是PyvragFvqrYbtvafNerRnfl@syner原创 2021-01-28 19:25:53 · 75 阅读 · 0 评论 -
SignIn
无壳,ida64位进入程序调用 __gmpz_init_set_str 函数,经查询是这样的那么这题就是rsa加密了,之前也有一题rsa题加密算法:解密算法:那么C=ad939ff59f6e70bcbfad406f2494993757eee98b91bc244184a377520d06fc35E =65537N=103461035900816914121390101299049044413950405173712170434161686539878160984549;分解N得到p原创 2021-01-27 15:12:00 · 109 阅读 · 0 评论 -
rome
无壳,23位查看字符串,跟着进去,进入fun函数程序很简单第一部分输入字符串,赋值第二部分加密第三部分验算验算是否加密成功程序重要部分就是加密,一般知道加密都可以逆运算出输入的字符串,但是这个取余运算的逆运算不会,就穷举脚本#include <iostream>using namespace std;int main(){ int index = 0; char v12[] ="Qsw3sj_lz4_Ujw@l"; char flag[22]; cha原创 2021-01-26 20:48:59 · 83 阅读 · 0 评论 -
Youngter-drive
有壳,upx的,先脱壳,教程自己上网搜从main函数开始创造俩个进程,StartAddress和sub_41119FStartAddress里面含有一个加密处理和一个减一看加密函数,在进 sub_411940 时会有一个报错,我这边用的IDA7.5,提示错误了,但是还是可以看到伪代码加密函数就是大写字母-38,小写字母-96, 是off_418000 减d的.off_418000:QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasd下一个线程里面只有减一最后一原创 2021-01-25 20:28:09 · 732 阅读 · 1 评论 -
[ACTF新生赛2020]easyre 1
查壳,是32位,upx壳,脱壳就是找的脱壳软件,我也不是很懂,就说下我的具体操作步骤吧打开cmd,脱upx壳的软件拖进去,空格-d ,空格,有壳文件拖入,解出来了下面看代码吧然后就挺简单的,就这点代码,下面那个for循环逆着写就行了,注意v4是个数组,暂时就会c语言,py还没学,用c我实在是不能把那一大串字符串写出来,抄个别人的脚本key = '~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<原创 2021-01-24 12:50:01 · 2043 阅读 · 1 评论 -
[2019红帽杯]easyRE
64位ida,7.0的,(最近用7.5老抽风,好多数据我都找不到)查看字符串,发现三个特殊的字符其中那个ABCD肯定是base64加密了,跟进去主要看一看这个函数名字,是sub_400E44其他俩个跟进去就是主函数了.分析主函数sub_4406E0 这个代码基本上是看不懂的,但是可以注意到里面有一个sys_read ,可以猜测是读取字符串内容的sub_424BA0,这个进去看内容其实我也看不懂,但是根据下面的for循环可以判断出,这个是读取字符串长度的,尤其是这一步可以判读这点因为这是fo原创 2021-01-23 20:55:34 · 300 阅读 · 0 评论 -
CrackRTF
查看字符串,看到俩行字符串比较特殊,找一个跟进去跟进了主函数,看代码吧这边有俩次输入密码,先看第一次atoi函数是数字转换为字符串stract 将 @DBApp 追加道 字符串后面下面还有一个sub_40100A 函数看到这边他是一个加密标志,hash加密,后面的0x8004是标识符,相当去用什么方法去加密,这边是sha1加密看别人都是爆破写的脚本import hashlibs = ‘6E32D0943418C2C33385BC35A1470250DD8923A9’.lower原创 2021-01-22 13:26:29 · 574 阅读 · 0 评论 -
JustRE
ida32位,无壳先查看字符串,相信一直做题就会有一种感觉,这个就很像flag前面俩个%d,学过c语言的都知道,肯定时差了几个数字,跟进去看看这块的函数sprintf语句那么我们猜测flag就可能是BJD{1999902069a45792d233ac}试了几种方式,这么写才对flag{1999902069a45792d233ac}...原创 2021-01-21 11:09:40 · 88 阅读 · 0 评论 -
rsa
写题目之前先了解下rsa算法rsaRSA加密是对明文的E次方后除以N后求余数的过程公钥n = p * q,其中p和q是两个大素数e是随机选择的数,作为公钥大佬的小节 rsa详解上面的都不用管,随便看一看就好了,我们要做的就是解密,上面当成公式用.也就是 密文的D次方取余N把上面的未知数都求出来拿到的一个文件是公钥,放进去求E,N网址E:65537N:86934482296048119190666062003494800588905656017203025617216654058原创 2021-01-18 13:08:56 · 114 阅读 · 0 评论 -
[GWCTF 2019]pyre 1
py文件,随便在网上搜个反编译器,看看源码看下就是很简单的俩轮加密,反着写过去就行了.贴上别人的脚本…print(‘Welcome to Re World!’)print(‘Your input1 is your flag~’)code = [0x1f,0x12,0x1d, 0x28,0x30,0x34, 0x01,0x06,0x14, 0x34,0x2c, 0x1b, 0x55,0x3f,0x6f,0x36,0x2a,0x3a, 0x01, 0x44,0x3b,0x25, 0x13]co原创 2021-01-16 19:23:45 · 552 阅读 · 0 评论 -
findit
APK反编译尝试直接搜处flag,没成功一直点最后一个,打开文件夹findit文件夹,找线索会在第3个文件里发现俩列16进制数写脚本转换成字符型呗,第一个是那就是第二个了pvkq{m164675262033l4m49lnp7p9mnk28k75}看着就很像,但它不是.那就可能这经过了加密处理,猜是凯撒密码了,数了下,相差10个flag{c164675262033b4c49bdf7f9cda28a75}...原创 2021-01-15 16:26:51 · 318 阅读 · 0 评论 -
Java逆向解密
JAVA逆向题,去下一个id-gui下载地址进去下带windows的那个就行了.然后反编译,这是个java的啊,虽然没学过,但学过c++,勉强能看懂一点大概意思是,输入的是flag,进行int result = arr[i] + 64 ^ 0x20;这个操作后得到了key,这就很简单了,写个脚本,反编译出来附上脚本#include <stdio.h>#include <stdlib.h>#include int main(){int key[] = {1原创 2021-01-14 12:39:21 · 307 阅读 · 0 评论 -
xor
ida 64 位打开,先看字符串,shift +f12 查看我就直接从success 这里跟过去了,双击字符串,然后选中字符串ctrl+x跟进其实和直接进main函数没什么区别,我就想碰碰运气的,嘿嘿.main函数注释写的很清楚了异或是什么也不用管,就是一种运算法则,都是电脑算的,也不用知道具体算法.global脚本s = [‘f’,0xA,‘k’,0xC,‘w’,’&’,‘O’,’.’,’@’,0x11,‘x’,0xD,‘Z’,’;’,‘U’,0x11,‘p’,0x19,‘原创 2021-01-13 16:48:29 · 78 阅读 · 1 评论 -
luck_guy
拿到文件,拖入ida,是64位检查字符串就顺着这个过去了,结果这个也就是main函数,没什么特别patch_me很容易,输入偶数输出flagget_flag仔细看一下,就1,4,5有用1,是f1追加到s后面,f2追加到s后面,f1知道,f2还不知道,s是空的4,是给f2赋值5,给f2加密所以顺序应该是4->5->1小结1,本题是64位,所以是大端序,再给f2赋值时,s需要倒过来(我这边是先转换成16进制在倒过来)2,发现编译器在输出16进制时要加0x,不然编译器报原创 2021-01-12 08:17:04 · 109 阅读 · 0 评论 -
BUUCTF reverse helloword
附件下载后发现是apk文件,也就是安卓逆向,下载工具apkide下载地址下载完毕后直接用apk打开附件,会发现有很多很多目录这时候我是查了网上一些其他人的做法,直接搜索main函数或是flag,我也尝试了下,但是搜索到的结果有很多,搜flag搜main也是很多所以我想了下,直接搜索flag{真的让我直接搜出了flag...原创 2021-01-12 08:10:01 · 186 阅读 · 0 评论