zoukankan      html  css  js  c++  java
  • 记录:一些有意思的汇编片段

    计算一段假码的余数存储到edi+ebx中:

    00401664  |.  B9 0A000000   mov ecx,0xA                              ;  把0xA 赋值给ecx
    00401669  |>  0FBE041E      /movsx eax,byte ptr ds:[esi+ebx]         ;  将 假码的第一个字节的机器码 赋值给eax
    0040166D  |.  99            |cdq                                     ;  扩展命令
    0040166E  |.  F7F9          |idiv ecx                                ;  edx 和 eax合并 除以0xA 商放在eax 余数放在edx
    00401670  |.  88141F        |mov byte ptr ds:[edi+ebx],dl            ;  将 余数edx 赋值给edi+ebx(用来存储 修改过的假码)
    00401673  |.  43            |inc ebx                                 ;  ebx递增1
    00401674  |.  3B1D 67344000 |cmp ebx,dword ptr ds:[0x403467]         ;  判断当前的长度是否跟假码的长度相同
    0040167A  |.^ 75 ED         jnz short 软编码序.00401669                 ;  不同 跳回去
    

    用来检测调试:

    7C81F424 >  64:A1 18000000  MOV EAX,DWORD PTR FS:[18]
    7C81F42A    8B40 30         MOV EAX,DWORD PTR DS:[EAX+30]
    7C81F42D    0FB640 02       MOVZX EAX,BYTE PTR DS:[EAX+2]
    

    可以用于进行判断跳转

    7411EA99   .  66:83F8 00    CMP AX,0                                 ;  影响ZF的标志位
    7411EA9D   >  B8 00000000   MOV EAX,0                                ;  EAX 为0
    7411EAA2   .  0F94C0        SETE AL                                  ;  根据ZF标志位判断,如果ZF为1那么al为1,ZF为0,那么al为0
    7411EAA5   .  F7D8          NEG EAX                                  ;  0 - eax的值赋值给eax 相当于取反
    
  • 相关阅读:
    session
    Cookie
    HttpServletRequest
    HttpServletResponse response(中文乱码、文件下载、定时刷新、控制缓存、重定向、注意事项)
    采购价格
    SAP 会计凭证
    STO 后台配置
    SAP 公司间采购
    SAP Dependency 相关性
    SAP 委外加工
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12074884.html
Copyright © 2011-2022 走看看