国内Md5解密: http://t007.cn/https://cmd5.la/https://cmd5.com/https://pmd5.com/http://ttmd5.com/https://md5.navisec.it/http://md5.tellyou.top/https://www.somd5.com/http://www.chamd5.org/ 国外Md5解密: https://www.md5tr.com/http://md5.my-addr.com/https://md5.gromweb.com/https://www.md5decrypt.org/https://md...

阅读全文>>

[转自yuange] 97年左右的文章,思想应该还早得到一些,宏病毒爆发的时候金山和江民公司口水账时候的思考,其实前一篇文章是批驳当时金山的一些专家的文章!一再点名这两篇文章说很多人没有看懂,很多高人自认为看懂了嘲笑我翻老文章。搞安全的可以去好好读读理解理解,还可以追加找找利用异常结构突破溢出保护这篇。 个人的理解溢出攻击只是通过外部条进改变了程序原来流程,而考虑改变程序流程的办法就不只是溢出了,   “解释执行与CPU代码执行在本质上并没有区别!”、“C中有指针”为什么要选数组,“有时有一些BUG可以增强我们的这一指令集”。 有执行代码,...

阅读全文>>

fuzz工具收集 https://github.com/ivanfratric/winafl https://github.com/attekett/NodeFuzz https://github.com/google/oss-fuzz http://blog.topsec.com.cn/ad_lab/alphafuzzer/ http://llvm.org/docs/LibFuzzer.html 子域名枚举 https://github.com/lijiejie/subDomainsBrute (经典的子域名爆破枚举脚本) https://github.com/ring0...

阅读全文>>

资深安全研究员的经验, 分享, 保留在博客里 1、刻意练习10000小时 这份“鸡汤”道理,想必大家都懂,就不解释了,不懂的自行百度,或者去读读《异类》这本经典书籍。 作者建议以月为单位来制定研究目标,他曾连续花了6个月的时间来研究Chrome Sandbox,但最终一无所获。 所以,有时坚持了不一定能达到目标,但不坚持,就更没戏了。 2、训练挖洞的双技能 (1)看洞:哪里看?历史漏洞的git log、bug报告、代码质量报告等等 (2)识洞:就是肉眼看...

阅读全文>>

所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。 ARM处理器的寻址方式 目前ARM处理器支持9种寻址方式,分别是立即数寻址、寄存器寻址、寄存器偏移寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址、堆栈寻址和块拷贝寻址。 1. 立即数寻址 也叫立即寻址,是一种特殊的寻址方式,操作数本身包含在指令中,只要取出指令也就取到了操作数。这个操作数叫做立即数,对应的寻址方式叫做立即寻址。例如: MOV R0,#64     ;R0  ← 64 ADD R0, R0, #1  ; ...

阅读全文>>

repne scasb指令,用于扫描字符串,计算字符串的长度,如下两条指令: cld repne scasb 对应的等价指令是: scans:inc edi     dec ecx     je loopdone     cmp byte [edi-1],al     jne scans loopdone:

阅读全文>>

注入Dll: 1,OpenProcess获得要注入进程的句柄 2,VirtualAllocEx在远程进程中开辟出一段内存,长度为strlen(dllname)+1; 3,WriteProcessMemory将Dll的名字写入第二步开辟出的内存中。 4,CreateRemoteThread将LoadLibraryA作为线程函数,参数为Dll的名称,创建新线程 5,CloseHandle关闭线程句柄 卸载Dll: 1,CreateRemoteThread将GetModuleHandle注入到远程进程中,参数为被注入的Dll名 2,GetExitCodeThread将线程退出的退出码...

阅读全文>>

IDA脚本测试 0x001 枚举函数 #include <idc.idc> static main() { auto addr, end, args, locals, frame, firstArg, name, ret; addr = 0; for (addr = NextFunction(addr); addr != BADADDR; addr = NextFunction(addr)) { name = Name(addr); end = GetFunctionAttr(addr, FUNCA...

阅读全文>>