Hook API
Hook API先说说最近干什么,最近一直在分析《恶代》的样本,简单看了看免杀,分析到Lab9了,Lab10中有个隐藏进程的知识点,或许可以和HOOK结合起来,然后就是看书上HOOK API的知识点,实际上之前就看过了,一直没总结,然后就是忙实验室招新的问题,带带学弟学妹打打今年的极客,免费工具人,不过感觉目前今年极客re部分的题出的不是太好。
本文章记录《逆理》书中关于HOOK API的相关知识。
DLL注入来钩取API这种技术有限制,就是只能勾取程序包含的dll中的API函数。
本文将通过HOOK计算器的SetWindowsText这个函数来使计算器输入数字,但显示中文字符。
xdbg调试我们先直接用xdbg调试的方法实现。
首先这个SetWindowsText函数,有SetWindowsTextA,SetWindowsTextW,实际上也就是ASSCII和UNICODE的区别,这个计算器也就是用的SetWindowsTextW。
然后来说说这个首先要找这个程序什么地方调用了这个SetWindowsTextW函数,我用xdbg只能找到SetWindowsTextW这个函数的内部,没 ...
恶意代码分析实战lab
《恶意代码分析实战lab》本文章用来记录本书的lab分析过程,对于书上的问题都是选择来分析,有些lab是重复的,所以前面的一些lab可能只会部分分析,然后到后面来具体分析。
文章免杀
https://www.const27.com/2021/09/03/%E5%9F%BA%E7%A1%80%E5%85%8D%E6%9D%80%E6%89%8B%E6%B3%95%E6%9A%B4%E9%A3%8E%E5%90%B8%E5%85%A5/
https://saucer-man.com/operation_and_maintenance/465.html
https://paper.seebug.org/1413/#_5
https://github.com/TideSec/BypassAntiVirus
https://www.yuque.com/tidesec/bypassav/309d7b24dfc5880d2b3fa78813ea72ea
https://github.com/Airboi/bypass-av-note
常用代码修改注册表
12345678910111213141516 ...
羊城杯 re wp
羊城杯 re wp题的质量还是可以,有些题因为遇到一些问题,没解出来。花时间来写wp一是巩固一些知识点,还有让更多的人可以互相学习。
BabySmc看题目就知道代码肯定被smc处理过了,所以直接动调就ok,也没有反调试。
先看前面部分。看看base64加密过程密文和比较。解密脚本
123456789101112131415161718192021222324import base64t=[]encstr = 'H>oQn6aqLr{DH6odhdm0dMe`MBo?lRglHtGPOdobDlknejmGI|ghDb<4'xor = [0xa6, 0xa3, 0xa9, 0xac]for i in range(len(encstr)): t.append(ord(encstr[i]) ^ xor[i % 4])t[-1]=0xE4#由于最后一个是4,是补的,直接改为表中的一个就行。base1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ ...
DASCTF八月挑战赛 re
DASCTF八月挑战赛 re#做完了逆向,不得不说das的re还是比较友好的
py得到文件py.exe,肯定就是考python打包成exe文件了。可以参考文章https://blog.csdn.net/m0_37552052/article/details/88093427
用pyinstxtractor.py还原
python pyinstxtractor.py [filename]
得到文件夹,看到里面有个py.pyc,直接还原不行,用文章里面的方法还原pyc头文件,如果想学习pyc还可以看看这篇文章https://zhuanlan.zhihu.com/p/145811103得到py文件。
12345678910111213141516171819202122232425# uncompyle6 version 3.7.4# Python bytecode 2.7 (62211)# Decompiled from: Python 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64) ...
MEMZ病毒分析
MEMZ病毒分析第一次分析病毒,拿彩虹猫来练了练手,先自己分析过程,遇到不懂的在看其他师傅的分析,学到很多,本文章将一步步分析彩虹猫病毒的实现过程,并且还原部分代码。
病毒分析的准备工作环境:我采用的是吾爱破解的xp系统,里面有很多现成的工具,ida,xdbg都有,只不过ida版本有点低,但是对于本病毒的分析也没太大影响,百度网盘链接:https://pan.baidu.com/s/1YvO264J-atvRUZew8AlS9g 提取码:abcd。(如果有大佬知道怎么在xp系统中使用更高版本的ida,或者有更好的分析病毒的虚拟机,可以在评论区给点资源,谢谢啦)
分析步骤,一般的病毒分析步骤,如下
查壳,常见的有upx,ASpack,等等,可以用来实现简单免杀。
行为分析,是否修改注册表,联网,等等,可以在虚拟机中跑一遍看看效果(但是不要直接连网),或者用vt直接跑跑看,有个大致的判断。
导入的dll以及API,使用StudyPE+去查看。
关键字符串,ida中shift+f12就可以直接查看。
放到ida静态分析,或者动调。
但是,对于彩虹猫病毒这个样本,里面的函数和逻辑都比较清晰 ...
祥云杯 部分 re wp
祥云杯 部分 re wp这次就只复现感觉对目前自己有意义的题吧,那个驱动看了看,了解了大致过程,差不多就行了,如果没了解过驱动,没写过驱动,下次遇到驱动题,还是只能乱分析。
先说说对现在ctf的re部分的看法吧,考点越来越广了,感觉就是需要你见识广,几乎什么都了解,不然对一道题根本无从下手,windows的exe,linux的elf,驱动,,安卓的apk,python的pyc,windows编程,各种算法,甚至一些比较特殊的语言写的程序,比如说go,c#,lua,rust,还有各种题型,maze,mfc窗口check,windows窗口check,vm。如果对每种都比较熟悉的话,做题肯定是相对容易的,但实际情况是根本不能对每种都能掌握,特别是去符号的高级语言。所以对于ctf,我只能说打过的人都晓得,懂得都懂,个人认为还是主要将其当做一个抓要点学习,娱乐的比赛,当然也是个人看法。
最近也挺迷茫的,不知道干啥,马上也快大二了,也一直在思考,颓废了一阵,也就当休息了,希望能早点找到新目标。但是个人认为多思考方向远比漫无目的的学习要好。
Dizzy本次re最简单的一道题,就是ida中f5不了, ...
inctf re 部分wp
inctf re 部分wp比赛时看了4道题,做起了两道,那道vm看太久了,就是爆破脚本有问题。
find_plut0一道z3约束器求解题,将flag进行两轮计算,但是ida打开时很难看,我们可以改一下类型,转换为数组,效果如下,这样就方便复制了。
解题脚本,这道题存在多解,找到可视字符串就行。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869from z3 import *code='inctf{U_Sur3_m4Te?}'tmp2 = [0] * 19tmp1 = [0] * 23len=len(code)s = Solver()flag = [BitVec('flag[%d]' % i, 32) for i in range(30)]tmp1[0] = flag[0] - 50 + flag[1]tmp1[1] = ...
数据结构 learn
数据结构 learn学了差不多10多天的数据结构,还有很多小章节没学,但是收获还是挺大的。
线性表线性表的顺序储存结构说白了就是类似于结构体数组,或者直接就是数组,例子在c++ learn文章的实战-通讯录管理资料。
优点:
无须为表中元素之间的逻辑关系而增加额外的储存空间。
可以快速的取表中任意位置的元素。
缺点
插入和删除操作需要移动大量元素
当线性表长度变化较大时,难以确定存储空间的容量
造成存储空间的“碎片”
线性表的链式存储结构就是链表
单链表主要学习如何生成链表,插入数据,头插法,尾插法,如何删除数据,如何删除链表。
自己写的一个例子
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 ...
D0g3比赛平台 re wp
D0g3比赛平台 re wp最近几天都在看题吧,xctf和极客巅峰都看了看,xctf做了一道re签到题,学了点x64汇编,后面的两道题大概尽量分析了下,对win32窗口和动调更熟悉了。极客巅峰的话做了一道re签到题,rc4+xxtea的apk,给了x86的so文件就是香。maze逻辑倒是不难,就是不会写脚本,用pexpect模块写交互或者用pwn交互,准备后面注重写代码能力,学习数据结构。
XCTF-CyBRICS 2021 Listingasm,64位汇编,AVX2指令,直接看是可以看懂逻辑的,但是由于对64位汇编了解太少,不知道具体过程(什么顺序放入的256bit寄存器),后来一想,可以直接放到x64dbg里面调呀,直接就把指令随便弄到一个exe里面了(64位内敛汇编还不知道怎么弄)。
直接上图有个指令需要说一下,vpshufb,相当于就是换位置,类似下面的过程,只不过是256bit。
写脚本
123456789101112131415161718# 'D1 D3 76 23 35 61 9A AB D5 D5 23 27 35 65 83 F8 C9 D3 6 ...
C++ learn
C++ learn记录一些学c++的笔记吧,主要是跟着b站黑马程序员学的,众所周知,B站是学习网站。目前进度,核心编程学了,提高编程未学。
C++基础入门就基础方面的话,和c大致差不多,不同点就写下面吧。
输入,输出c++多了一种输入输出的方式,cin,cout。
123456789101112#include<iostream>using namespace std;int main(){ int a=10; char ch; cin >> ch; cout << ch <<"="<< a << endl;}
string变量123456789101112131415#include<iostream>#include<string>using namespace std;int main(){ char ch[10]="hellow"; //ch[10] = "abc";C语言的这种字符串是不能直 ...