1.【爆肝干货】面试官:你能实现一下call()的动作动作代码源码嘛?今天我们就来搞懂call()源码instanceof源码和类型转换
2.免杀动态对抗之syscall[源码分析]
3.unitystartcoroutineå¯ä»¥ç¨å¯ç¨å¤ä¸ªåç¨å
【爆肝干货】面试官:你能实现一下call()的源码嘛?今天我们就来搞懂call()源码instanceof源码和类型转换
前言 面试官提问:你能实现一下 call() 源码吗? 今天,我们将深入学习 JavaScript 类型转换、源码call() 方法源码以及 instanceof 操作符。动作动作代码 学习目标:总结 JavaScript 数据类型
理解 typeof() 方法与引用类型判断
掌握 instanceof 的源码原理与使用
实现 call() 方法的源码
JavaScript 数据类型概览 JavaScript 中的数据类型包括基本类型和引用类型。基本类型有:Number、动作动作代码String、源码videoview播放视频源码Boolean、动作动作代码Null、源码Undefined、动作动作代码Symbol 和 BigInt。源码引用类型包括:Object 和函数。动作动作代码 类型转换案例 了解如何通过 typeof() 方法判断基本类型与引用类型(除函数外)。源码注意,动作动作代码typeof() 方法对原始数据类型(如 null)存在局限性。源码 实例演示 通过实例,动作动作代码展示如何使用 typeof() 方法判断变量类型。 类型转换案例分析 探讨原始数据类型如何被识别为 Object,以及 instanceof 操作符在不同场景下的作用。 instanceof 原理与应用 instanceof 是ipfsdesktop源码分析基于原型链进行类型检测的。它会从对象的原型链逐级向上查找,直到找到匹配的构造函数原型。 实现 instanceof 源码 介绍如何构建实现 instanceof 的源码,包含参数处理与原型链查找过程。 Array.isArray() 方法 了解 JavaScript 内置的 Array.isArray() 方法,专门用于判断一个对象是否为数组。 判断数组实例 通过案例验证 instanceof 和 Array.isArray() 方法的正确性。 call() 方法源码实现 解释 call() 方法的原理,包括隐式绑定与函数执行过程。jdk源码复习 实现 call() 源码 展示 call() 方法的源码实现,包括参数传递与 this 指向处理。 案例验证 通过代码案例验证实现的 call() 方法源码。 总结与问答 整理今天学习的重点,鼓励提问和讨论,期待读者的反馈与建议。 感谢阅读,期待您的反馈与支持。免杀动态对抗之syscall[源码分析]
基础概念
操作系统分为内核和应用层,pvi系统源码从R0-R3,R0是内核,R3是用户层。Windows中日常调用的API都是R3抽象出来的接口,虽然Win API它也是R3接口,但由于Windows的设计思想就是高度封装,实际上的R3 API是ntdll.dll中的函数。
我们调用的Win API都是kernel.dll/user.dll中的函数,最终都要经过ntdll.dll。牛客源码
逆向学习一个函数,选定CreateThread,ntdll中的对应函数是NtCreateThread。可以看到首先给eax赋值(系统调用号SSN),然后再执行syscall。
EDR的工作原理是对Windows API进行hook。一般使用inline hook,即将函数的开头地址值改成jmp xxxxxxx(hook函数地址)。知道了syscall的调用模板,自己构造syscall(获取SSN,syscall),即可绕过EDR对API的hook。
学习不同项目对应的手法,如HellsGate、TartarusGate、GetSSN、SysWhispers等。这些项目通过遍历解析ntdll.dll模块的导出表,定位函数地址,获取系统调用号SSN,实现动态获取SSN。
使用直接系统调用或间接系统调用,如SysWhispers系列项目的直接系统调用(手搓syscall asm)和间接系统调用(使用用户态API,如kernel.dll中的API)。系统调用号SSN在不同版本的系统下是不一样的,可以参考相关技术博客整理的列表。
SysWhispers2使用随机系统调用跳转(Random Syscall Jumps)避免“系统调用的标记”,通过SW__GetRandomSyscallAddress函数在ntdll.dll中搜索并选择一个干净的系统调用指令来使用。
SysWhispers3引入了egg技术(动态字符替换,汇编指令层次的混淆)和支持直接跳转到syscalls,是spoof call的变体,绕过对用户态asm文件syscall的监控。
HWSyscalls项目通过kernel gadget,跳到ntdll.dll中做间接syscall,更彻底地实现了间接系统调用。
这些项目的实现涉及软件中自定义堆栈流程、硬件断点等技术,通过内核函数调用、动态字符替换、异常处理机制等,绕过EDR检测和系统调用监控,实现免杀动态对抗。
unitystartcoroutineå¯ä»¥ç¨å¯ç¨å¤ä¸ªåç¨å
ä¸æ¬¡åªè½æ§è¡ä¸ä¸ªï¼ä½ æ¯å¤äºå¡èå·²ï¼å¯ä»¥è¿æ ·åï¼public IEnumerator runAc(int image,float delay,List<Action> callbacks){
foreach(Action callback in callbacks){
for(int i=0;i<image;i++){
yield return new WaitForSeconds(delay);
callback?.Invoke();
}
}
}
æ们æå®å¸§imageå帧édelayå®æä¸ä¸ªæ¥å¸æèä¸å»æä¸è¥¿ï¼ç¶ååå¤ä½ãé¦å è¿è¡å¨åééè°èåæ åç°ï¼å®æ¯aè½´z转å¨-ï¼bè½´z轴转å¨4å°±æ¯å°è¾¾æåä½ç½®ï¼ç¶åååæ ï¼-4å°±æ¯å¤ä½ãè¿è¡é¡¹ç®å¨éé¢æ¨¡æä½ç½®
è°èä¸¤ä¸ªå ³èçzè½´ï¼æç»å°èéä½ç½®
ç°å¨æ们ç¨åºç¨æºç¨
ab轴伸å±æ¯ä¸èµ·åçï¼å¸§å¨ä½ï¼abæ¶åä¹æ¯ä¸èµ·åçï¼åå转å就好äºãæactionä½ä¸ºéåç»æºç¨æ§è¡ï¼ä»å°±æ¯abåæ¶ä¼¸å±èªå¨æåç¶ååæ¶æ¶åèªå¨å¤ä½ãç®åçæºæ¢°æèè¿å¨ï¼ä½ è¯è¯ã