主题:(非计算机系学生)如何入门篇(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函数必须加载符号加载器才能使用
[注意]
尽量提供本主题的有用信息帮助更多的人。这样才是我的用意。
(非计算机系学生)如何入门篇(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函数必须加载符号加载器才能使用
[注意]
尽量提供本主题的有用信息帮助更多的人。这样才是我的用意。