Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

由于当前大语言模型发展迅速,其能够辅助甚至独立解决的CTF题目越来越多,因此这里尝试研究其在CTF场景中的适用性以及提示词(Prompt)技巧。 CTF的题目类型主要可以分成静态和动态: 做部分静态题目时,可以直接将题目附件、源码或相关文件一次性提供给 (网页版的)AI 即可。信息比较全面,且不容易触发安全检查。网页版ChatGPT目前可以调用很多工具,所以支持分析的文件格式也很多。但网页...

CTF入门

部署CTFDd模板
active-current"); }); target.classList.add("active", "active-current"); let parent = target.parentNode; while (!parent.matches(".toc")) { if (parent.matches("li")) parent.classList.add("active"); parent = parent.parentNode; } } // 方案一: volantis.activateNavIndex = 0 activateNavByIndex(navItems[volantis.activateNavIndex]) if (targets[0]) { volantis.scroll.push(() => { if (targets[0].getBoundingClientRect().top >= 0) { volantis.activateNavIndex = 0 } else if (targets[targets.length - 1].getBoundingClientRect().top < 0) { volantis.activateNavIndex = targets.length - 1 } else { for (let index = 0; index < targets.length; index++) { const target0 = targets[index]; const target1 = targets[(index + 1) % targets.length]; if (target0.getBoundingClientRect().top < 0 && target1.getBoundingClientRect().top >= 0) { volantis.activateNavIndex = index break; } } } activateNavByIndex(navItems[volantis.activateNavIndex]) }) } // 方案二: // IntersectionObserver 不是完美精确到像素级别 也不是低延时性的 // function findIndex(entries) { // let index = 0; // let entry = entries[index]; // if (entry.boundingClientRect.top > 0) { // index = sections.indexOf(entry.target); // return index === 0 ? 0 : index - 1; // } // for (; index < entries.length; index++) { // if (entries[index].boundingClientRect.top <= 0) { // entry = entries[index]; // } else { // return sections.indexOf(entry.target); // } // } // return sections.indexOf(entry.target); // } // function createIntersectionObserver(marginTop) { // marginTop = Math.floor(marginTop + 10000); // let intersectionObserver = new IntersectionObserver( // (entries, observe) => { // let scrollHeight = document.documentElement.scrollHeight; // if (scrollHeight > marginTop) { // observe.disconnect(); // createIntersectionObserver(scrollHeight); // return; // } // let index = findIndex(entries); // activateNavByIndex(navItems[index]); // }, { // rootMargin: marginTop + "px 0px -100% 0px", // threshold: 0, // } // ); // sections.forEach((element) => { // element && intersectionObserver.observe(element); // }); // } // createIntersectionObserver(document.documentElement.scrollHeight); } document.addEventListener("DOMContentLoaded", () => { volantis.requestAnimationFrame(listenSidebarTOC) });