WEB开发网
开发学院网络安全黑客技术 OllyDBG 入门系列(四)-内存断点 阅读

OllyDBG 入门系列(四)-内存断点

 2010-09-30 16:54:11 来源:WEB开发网   
核心提示: 系统存储的原则为“高高低低”,即低字节存放在地址较低的字节单元中,OllyDBG 入门系列(四)-内存断点(8),高字节存放在地址较高的字节单元中,比如一个字由两个字节组成,这个注册机就很好写了,如果用汇编来写这个注册机的话就更简单了,像这样:1234,这里的高字节就是1

系统存储的原则为“高高低低”,即低字节存放在地址较低的字节单元中,高字节存放在地址较高的字节单元中。比如一个字由两个字节组成,像这样:12 34 ,这里的高字节就是 12 ,低字节就是 34。上面的那条指令 MOV EBX,DWORD PTR DS:[ESI] 等同于 MOV EBX,DWORD PTR DS:[40339C]。注意这里是 DWORD,即“双字”,由 4 个连续的字节构成。而取地址为 40339C 的双字单元中的内容时,我们应该得到的是“454D4147”,即由高字节到低字节顺序的值。因此经过 MOV EBX,DWORD PTR DS:[ESI] 这条指令,就是把从地址 40339C 开始处的值送到 EBX,所以我们得到了 “454D4147”。好了,这里弄清楚了,我们再接着谈这个程序的算法。前面我们已经说了取磁盘类型参数做循环次数,再取卷标值 ASCII 码的逆序作为数值,有了这两个值就开始计算了。现在我们把磁盘类型值作为 n,卷标值 ASCII 码的逆序数值作为 a,最后得出的结果作为 b,有这样的计算过程:

第一次:b = a * n

第二次:b = a * (n - 1) + b

第三次:b = a * (n - 2) + b

第 n 次:b = a * 1 + b

可得出公式为 b = a * [n + (n - 1) + (n - 2) + … + 1] = a * [n * (n + 1) / 2]

还记得上一篇我们的分析吗?看这一句:

00401405 |. 81F6 53757A79     XOR ESI,797A7553                            ; 把ESI中的值与797A7553H异或

这里算出来的 b 最后还要和 797A7553H 异或一下才是真正的注册码。只要你对编程有所了解,这个注册机就很好写了。如果用汇编来写这个注册机的话就更简单了,很多内容可以直接照抄。

编缉推荐阅读以下文章

  • OllyDBG 入门系列(五)-消息断点及 RUN 跟踪
  • OllyDBG 入门系列(三)-函数参考
  • OllyDBG 入门系列(二)-字串参考
  • OllyDBG 入门系列(一)-认识OllyDBG

上一页  3 4 5 6 7 8 9 10  下一页

Tags:OllyDBG 入门 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接