随笔分类 -  CTF

逆向的基本要求
摘要:#日常查壳: ##32位,运行看看: ####(有点嚣张,但不多),任意输入退出。 ###进IDA看主函数: ####进入主函数后,首先是读入一个字符串,然后是对该字符串进行sub_401080方法加密,最后是对比。 ####那么我们跟进方法,看看是什么加密类型: ####第一眼下去还多了一个方法s 阅读全文
posted @ 2023-05-05 22:02 TFOREVERY 阅读(259) 评论(0) 推荐(0)
摘要:#查壳: ####32位,有个小壳,怎么办,脱了呗,还能这么办(方法见前文)https://www.cnblogs.com/TFOREVERY/p/17366210.html ###脱壳后,进入IDA找主函数: ####脸上就是flag{Just_upx_-d}收工。 阅读全文
posted @ 2023-05-05 19:24 TFOREVERY 阅读(63) 评论(0) 推荐(0)
摘要:#查壳: ###64位,先看看运行有问题吗: ####任意输入给你弹了一个wrong ###进IDA看看: ####解释:输入一个字符串,要满足字符串的长度为33,不然就报错。接下来是在输入的字符串中拿出特定的字符,进行异或后得到一个新的字符串,最后与特定的字符串对比。 ####这样看来,我们先看要 阅读全文
posted @ 2023-05-05 19:15 TFOREVERY 阅读(309) 评论(0) 推荐(0)
摘要:#查壳: ##64位,进IDA找主函数: ####挺长的,慢慢来吧,先找正确的判断输出:涉及到了v11,又涉及到到方法sub_400E44,跟进方法看看: ####出现位运算,和aAbcdefghijklmn,跟进看看: ####标准base64编码,那就是说v11是根据v18base64加密了10 阅读全文
posted @ 2023-05-05 18:33 TFOREVERY 阅读(171) 评论(0) 推荐(0)
摘要:#下载回来发现有两个文件,先看另一个文件 ####一串数据,(我调整过了的哈不要在意这些细节)看不出有啥用。 #依旧查壳: ##64位进IDA找主函数: ####解释一下函数内容:大概是讲打开一个“flag”的文件,读了一部分文件(flag没跑了),然后进行加密(奇数位一种加密,偶数位又是另一种加密 阅读全文
posted @ 2023-05-05 16:35 TFOREVERY 阅读(190) 评论(0) 推荐(0)
摘要:#查壳: ##有个壳,脱一下,upx脱壳方法讲过了,(这里注意,低版本的upx是脱不掉壳的,换高版本哈)可以去:https://www.cnblogs.com/TFOREVERY/p/17366210.html ####不赘述了:64位进IDA老思想进主函数: ###对输入flag进行一个方法加密s 阅读全文
posted @ 2023-05-05 16:25 TFOREVERY 阅读(232) 评论(0) 推荐(0)
摘要:#查壳(养成习惯了,不管有没有用都要来那么一下): ##发现没啥,进IDA瞅瞅: ####给了一堆字串,且没有主函数,那么我们退出IDA,运行一下: ###checkflag,那么必定有方法去检查这玩意:继续找F12: <!DOCTYPE Html /> <html> <head> <title>F 阅读全文
posted @ 2023-05-05 13:40 TFOREVERY 阅读(141) 评论(0) 推荐(0)
摘要:#查壳(两个文件,依旧是看内存大的那个文件就行) ##32位,进IDA,找主函数: int func() { int result; // eax int v1[4]; // [esp+14h] [ebp-44h] unsigned __int8 v2; // [esp+24h] [ebp-34h] 阅读全文
posted @ 2023-05-03 15:53 TFOREVERY 阅读(317) 评论(0) 推荐(0)
摘要:#查壳 ##进64IDA,找主函数 --> 会发现没有主函数,字符串查找也看不懂 ####看着有点意思,跟进去看: ####全是一些定义啥的,但是在注释那里我们能看到一种标志 --> JAVA语言的String(不确定是不是由他而来的,再看看),空格切换“视图” ####好家伙,this (JAVA 阅读全文
posted @ 2023-05-03 14:46 TFOREVERY 阅读(52) 评论(0) 推荐(0)
摘要:#下载回来后,有两个文件 ##查那个内存大的就行,上边那个扔着不管就行 #查壳 ##32位,进IDA,老套路,进主函数 int __cdecl main(int argc, const char **argv, const char **envp) { _BYTE v4[12]; // [esp+1 阅读全文
posted @ 2023-05-03 14:12 TFOREVERY 阅读(816) 评论(3) 推荐(1)
摘要:养成习惯,不管它是啥,都先查壳 可以看出这是一个.py的文件,所以要反编译成py的文件,这里用的是uncompyle6 安装如下:cmd命令下输入如下:pip install uncompyle6(回车) 使用如下:uncompyle6 (目标文件) > (转换成的文件的名字).py(这里注意,要在 阅读全文
posted @ 2023-05-03 13:57 TFOREVERY 阅读(59) 评论(0) 推荐(0)
摘要:这道题有点绕,还是得耐心点。(个人讲的也不是很好,如果有错的话还原谅,欢迎指出) 查壳 32位,进IDA,找主函数,发现没有,但在查找的时候发现有个有点类似加密过后的字符串 进去瞅瞅 INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3 阅读全文
posted @ 2023-05-03 11:56 TFOREVERY 阅读(47) 评论(0) 推荐(0)
摘要:#查壳 #32位 ##这道题我是通过OD绕过,直接得到答案的,具体就是找到获取flag的窗口,通过爆破,直接让它给出答案(自己调就很麻烦,我自己调了好久,后边找不到入口了都qwq) ###具体方法就是找到该弹窗的函数,进入,然后找到它测试次数的方法,再进入,通过修改参数,让他认为我们已经达到次数,然 阅读全文
posted @ 2023-05-02 12:03 TFOREVERY 阅读(18) 评论(0) 推荐(0)
摘要:#查壳 ##64位,进IDA,老套路进主函数 unsigned __int64 get_flag() { unsigned int v0; // eax int i; // [rsp+4h] [rbp-3Ch] int j; // [rsp+8h] [rbp-38h] __int64 s; // [ 阅读全文
posted @ 2023-05-02 11:13 TFOREVERY 阅读(16) 评论(0) 推荐(0)
摘要:#(这里是个解题的分界,涉及到了java,以后还会碰到py)依旧查壳。 ##java的一般都是64位,按照老套路扔进IDA中,你会发现,你看不懂它在干嘛了,而且没有伪代码给你看了,因为IDA无法反编译java的文件,我们需要另一个软件jadx-gui来进行对java文件的反编译。拖进工具里,如下: 阅读全文
posted @ 2023-05-02 10:04 TFOREVERY 阅读(173) 评论(0) 推荐(0)
摘要:#查壳 ##64位,进IDA,老办法,找主函数 unsigned __int64 Decry() { char v1; // [rsp+Fh] [rbp-51h] int v2; // [rsp+10h] [rbp-50h] int v3; // [rsp+14h] [rbp-4Ch] int i; 阅读全文
posted @ 2023-05-02 09:47 TFOREVERY 阅读(76) 评论(0) 推荐(0)
摘要:#查壳 ##32位,拖进IDA,老方法,找到flag,进入伪代码 int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { char v3[29]; // [esp+17h] [ebp-35h] BYR 阅读全文
posted @ 2023-05-01 12:37 TFOREVERY 阅读(64) 评论(0) 推荐(0)
摘要:#查壳 ####拖进32位IDA,老办法 ####随便进入一个,进入伪代码 int __cdecl main_0(int argc, const char **argv, const char **envp) { size_t v3; // eax const char *v4; // eax si 阅读全文
posted @ 2023-05-01 11:03 TFOREVERY 阅读(73) 评论(0) 推荐(0)
摘要:#APX文件 #查壳 ##拖进64IDA,老方法 ####得到flag{7631a988259a00816deda84afb29430a}收工。 阅读全文
posted @ 2023-05-01 10:44 TFOREVERY 阅读(37) 评论(0) 推荐(0)
摘要:#~~~它说附件有用????(没见用到)~~~ #查壳 ##64位,进IDA,老方法(伪代码) int __cdecl main(int argc, const char **argv, const char **envp) { int i; // [rsp+2Ch] [rbp-124h] char 阅读全文
posted @ 2023-05-01 10:37 TFOREVERY 阅读(66) 评论(0) 推荐(0)