首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手写原生代码专题 | 简易手写画板(二)

    大家好,本篇文章,小编将和大家完成一个手写画板的示例,这个例子比较简单只能画简单的线条,并能调节线条的粗细和颜色,还有一个清除的功能,具体示例如下视频所示: 一、基础知识复习 如视频所示,在这个示例中,...// 着色---填充颜色,整个图形都有颜色,另一种为描边,只是有线条的路径 // 设置填充颜色 ctx.fillStyle = 'orange'; // 填充 ctx.fill(); 二、编写...三、编写CSS代码 接下来,我们来编写相关的CSS样式,代码很简单,这里只是简单说明下: 首先定义全局为 box-sizing: border-box 的盒子模型,然后使用弹性布局让画布容器垂直水平居中...四、编写JS脚本 最后进入代码的核心部分,编写 JS 脚本,这里我们只是简单的实现画直线,为啥会用画圆形的API,主要为了让线条更加有手绘的感觉,在画线停顿的地方,有停顿的点,以线条的粗细为半径的圆点。...clearEl.addEventListener('click',()=>ctx.clearRect(0,0,canvas.width,canvas.height)); 结束语 好了,今天的项目就到这里结束了,想必大家都熟悉了如何手写一个简易的画布

    1.4K20

    1.4 编写简易ShellCode弹窗

    ShellCode代码的编写有多种方式,通常会优先使用汇编语言实现,这得益于汇编语言的可控性。...或是被恶意代码用于执行进程代码的注入,通常情况下ShellCode代码无法独立运行,必须依赖于父进程或是Windows文件加载器的加载才能够被运行,本章将通过一个简单的弹窗(MessageBox)来实现一个简易版的弹窗功能...1.4.1 寻找DLL库函数地址在编写ShellCode之前,我们需要查找一个函数地址,由于我们需要调用MessageBoxA()这个函数,所以需要获取该函数的内存动态地址,根据微软的官方定义可知,该函数默认放在了...1.4.2 探讨STDCALL调用约定既然获取到了相应的内存地址,那么接下来就需要通过汇编来编写可执行代码片段了,在编写这段代码之前,先来了解一下汇编语言的调用约定,在汇编语言中,要想调用某个函数,需要使用...在实际的编程中,一般还是先将地址赋值给eax寄存器,然后再CALL调用相应的寄存器实现调用,比如现在笔者有一个lyshark(a,b,c,d)函数,如果我们想要调用它,那么它的汇编代码就应该编写为:push

    25820

    1.4 编写简易ShellCode弹窗

    ShellCode代码的编写有多种方式,通常会优先使用汇编语言实现,这得益于汇编语言的可控性。...或是被恶意代码用于执行进程代码的注入,通常情况下ShellCode代码无法独立运行,必须依赖于父进程或是Windows文件加载器的加载才能够被运行,本章将通过一个简单的弹窗(MessageBox)来实现一个简易版的弹窗功能...1.4.1 寻找DLL库函数地址在编写ShellCode之前,我们需要查找一个函数地址,由于我们需要调用MessageBoxA()这个函数,所以需要获取该函数的内存动态地址,根据微软的官方定义可知,该函数默认放在了...1.4.2 探讨STDCALL调用约定既然获取到了相应的内存地址,那么接下来就需要通过汇编来编写可执行代码片段了,在编写这段代码之前,先来了解一下汇编语言的调用约定,在汇编语言中,要想调用某个函数,需要使用...在实际的编程中,一般还是先将地址赋值给eax寄存器,然后再CALL调用相应的寄存器实现调用,比如现在笔者有一个lyshark(a,b,c,d)函数,如果我们想要调用它,那么它的汇编代码就应该编写为:push

    32340

    1.4 编写简易ShellCode弹窗

    ShellCode代码的编写有多种方式,通常会优先使用汇编语言实现,这得益于汇编语言的可控性。...或是被恶意代码用于执行进程代码的注入,通常情况下ShellCode代码无法独立运行,必须依赖于父进程或是Windows文件加载器的加载才能够被运行,本章将通过一个简单的弹窗(MessageBox)来实现一个简易版的弹窗功能...1.4.1 寻找DLL库函数地址 在编写ShellCode之前,我们需要查找一个函数地址,由于我们需要调用MessageBoxA()这个函数,所以需要获取该函数的内存动态地址,根据微软的官方定义可知,该函数默认放在了...1.4.2 探讨STDCALL调用约定 既然获取到了相应的内存地址,那么接下来就需要通过汇编来编写可执行代码片段了,在编写这段代码之前,先来了解一下汇编语言的调用约定,在汇编语言中,要想调用某个函数,需要使用...在实际的编程中,一般还是先将地址赋值给eax寄存器,然后再CALL调用相应的寄存器实现调用,比如现在笔者有一个lyshark(a,b,c,d)函数,如果我们想要调用它,那么它的汇编代码就应该编写为: push

    28010

    CC++ 编写并提取简易 ShellCode

    编写ShellCode之前,我们需要查找一个函数地址,这里要调用 MessageBox() 这个API函数,所以说首先需要获取该函数的地址,这个函数默认放在了 User32.dll 库中,你可以通过编写一个小程序来获取...---- 既然获取到了相应的内存地址,那么接下来就需要通过汇编来编写可执行代码片段了,在编写这段代码之前,先来了解一下汇编语言的调用约定,在汇编语言中,要想调用某个函数,需要使用CALL语句,而在CALL...在实际的编程中,一般还是先将地址赋给eax寄存器,然后再CALL相应的寄存器实现调用,比如现在有一个函数 lyshark(a,b,c,d),我们想调用它,那么它的汇编代码就应该编写为: push...xor ebx, ebx push ebx mov eax, 0x75874b80 call eax 接着编写 MessageBox() 这个函数调用。...mov eax,75874B80h 00161408 FF D0 call eax 我们直接将上方的这些机器码提取出来,从而编写出完整的

    47010

    如何使用Python编写简易木马程序

    这次我们使用Python编写一个具有键盘记录、截屏以及通信功能的简易木马。依然选用Sublime text2 +JEDI(python自动补全插件)来撸代码。...抛开高科技,我们暂且回归本质,探探简易键盘记录器的原理与实现。...0x03 综合运用:完成一个简易木马 无论是keylogger记录下的内容,还是screenshotter截获的图片,只存在客户端是没有太大意义的,我们需要构建一个简单server和client端来进行通信...编写一个简单的TCPclient # -*- coding: utf-8 -*-import socket # 目标地址IP/URL及端口target_host = "127.0.0.1"target_port...服务端接收到客户端的请求并作出响应: 0x04 结语 最后,你需要做的就是把上面三个模块结合起来,一个简易的具有键盘记录、屏幕截图并可以发送内容到我们服务端的木马就完成了。

    3.2K21
    领券