论坛: 编程破解 标题: (非计算机系学生)如何入门篇(5)---破解是怎么回事 复制本贴地址    
作者: sniper167 [sniper167]    论坛用户   登录
=========================================================
  (非计算机系学生)如何入门篇(5)---破解是怎么回事
=========================================================

破解一点也不神奇来源于程序的调试
原理在于把二进制代码自动(靠程序例如:softice 调试器)
解释成汇编语言(当然人工可以解释但是不实际)

汇编语言直接来源于二进制代码,是可读的例如:


  USER32!GetSystemMetrics                  ; ->API函数
  014F:BFF648C7  XOR    EAX,EAX       
  014F:BFF648C9  MOV    EDX,[ESP+04]
  014F:BFF648CD  CMP    EDX,00
  014F:BFF648D0  JL      BFF64919             
  014F:BFF648D2  CMP    EDX,4A

段地址:偏移地址  汇编语言助记符  操作数,操作数

段地址:偏移地址                ;-〉内存的地址
汇编语言助记符  操作数,操作数 ;-〉都是由二进制码翻译过来的


要破解就是找到处于内存某地的控制某种功能的二进制码修改
要找到那个地方必须设置陷阱,程序执行到那之前就捕捉到它。

这个陷阱就是--断点
一般的办法使设置到执行的API函数

例如:BPM GetSystemMetrics    ;(softice 调试器)
*注意:有些API函数必须加载符号加载器才能使用


地主 发表时间: 03-12-30 16:40

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号