zoukankan      html  css  js  c++  java
  • 破解时常用汇编命令

    基本上多数破解的思路是一样的,就是将本来判断为true的时候干的事情改为逻辑值为false就做,因此常常需要替换一些汇编命令:

    cmp a,b 比较a与b
    mov a,b 把b的值送给a
    ret 返回主程序
    nop 无作用,英文“no operation”的简写,意思是“do nothing”(机器码90)***机器码的含义参看上面
    (解释:ultraedit打开编辑exe文件时你看到90,等同于汇编语句nop)
    call 调用子程序
    je 或jz 若相等则跳(机器码74 或0F84)
    jne或jnz 若不相等则跳(机器码75或0F85)
    jmp 无条件跳(机器码EB)
    jb 若小于则跳
    ja 若大于则跳
    jg 若大于则跳
    jge 若大于等于则跳
    jl 若小于则跳
    jle 若小于等于则跳
    pop 出栈
    push 压栈
    call 机器码也是E8?

    三.常见修改(机器码)
    74=>75 74=>90 74=>EB
    75=>74 75=>90 75=>EB

    jnz->nop
    75->90(相应的机器码修改)

    jnz -> jmp
    75 -> EB(相应的机器码修改)

    jnz -> jz
    75->74 (正常) 0F 85 -> 0F 84(特殊情况下,有时,相应的机器码修改)

    四.两种不同情况的不同修改方法
    1.修改为jmp
    je(jne,jz,jnz) =>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp的作用是绝对跳,无条件跳,从而跳过下面的出错信息

    xxxxxxxxxxxx 出错信息,例如:注册码不对,sorry,未注册版不能...,"Function Not Avaible in Demo" 或 "Command Not Avaible" 或 "Can't save in Shareware/Demo"等 (我们希望把它跳过,不让它出现)
    。。。
    。。。
    xxxxxxxxxxxx 正确路线所在

    2.修改为nop
    je(jne,jz,jnz) =>nop相应的机器码90 (正确信息向上找到的第一个跳转) nop的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处

    xxxxxxxxxxxx 正确信息,例如:注册成功,谢谢您的支持等(我们希望它不被跳过,让它出现,程序一定要顺利来到这里)
    。。。
    。。。
    xxxxxxxxxxxx 出错信息(我们希望不要跳到这里,不让它出现)它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 

    例如使用windbg时候
    0:000> dd 0c366b28 l4
    0c366b28  7e830c74 940f0108 c0b60fc0 01b805eb   
    执行ed 0c366b28 7e830c75
    修改为
    0:000> dd 0c366b28 l4
    0c366b28  7e830c75 940f0108 c0b60fc0 01b805eb 
  • 相关阅读:
    Crumpet – 使用很简单的响应式前端开发框架
    太赞了!超炫的页面切换动画效果【附源码下载】
    你见过动物是怎么笑的吗?赶紧来看看【组图】
    Treed – 基于拖放 操作的,强大的树形编辑器
    Perfect Scrollbar – 完美的 jQuery 滚动条插件
    Jeet – 先进,直观,灵活的 CSS 网格系统
    舌尖上的设计!10个美味的餐馆和食品网站
    推荐15款最好的 Twitter Bootstrap 开发工具
    Web 前端开发人员和设计师必读精华文章【系列二十五】
    Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景
  • 原文地址:https://www.cnblogs.com/Randy0528/p/1958966.html
Copyright © 2011-2022 走看看