回 帖 发 新 帖 刷新版面

主题:(非计算机系学生)如何入门篇(5)---破解是怎么回事

=========================================================
  (非计算机系学生)如何入门篇(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函数必须加载符号加载器才能使用





[注意]


尽量提供本主题的有用信息帮助更多的人。这样才是我的用意。

回复列表 (共21个回复)

21 楼

嗯~~
我的处女帖就给你了楼猪~呵呵~
学习中

我来回复

您尚未登录,请登录后再回复。点此登录或注册