• 标 题:TRW短篇教学 (6千字)
  • 作 者:★morning[BCG]★
  • 时 间:2001-9-29 22:46:28
  • 链 接:http://bbs.pediy.com

工具软件:TRW1.22娃娃版
目标软件:小李注册表大师1.11
软件大小:406K
下载:http://www.csdn.net/soft/openfile.asp?kind=1&id=13630
介绍:这个软件的注册很简单,属于明码比较,适合初学者用来了解CRACK的基础知识(并不是全部)。
      在这里主要是介绍TRW的使用。
步骤:
1。运行目标软件。
2。运行TRW
2.5 如果你将第1和第2步反过来,在运行目标软件时,会出现TRW的工作窗口,不要怕~~按F5就可以返回WINDOWS了
3。将TRW的窗口最小化。(没有什么意义,习惯问题)
4。返回到目标软件,这个东东一开始就会出现注册窗口。
5。好了,在用户名里填上你最喜欢的NICKNAME吧,比如我就填MORNING[BCG],注册码12345678,这两样东东都可以
  按你的习惯填,不会影响你理解下文的.
6. 这时该请出我们的主角TRW了,TRW有两组热键,分别代表不同的特权级别,所谓特权级别就是程序在执行中有级
  别之分,只有操作系统工作在最高级--0级中,其它的程序都应工作在3级中,在3级中的程序不可直接访问IO端口
  ,也无法访问其它程序运行的内存,连向程序自已的代码段写入数据都是非法的(会出现你熟悉的蓝屏),只有对
  工作在0级上的程序来说系统才是全开放的.所以TRW为我们准备了两种不同特权级别的热键(CTRL+N为3级,
    CTRL+M为0级),可以在不同的情况下使用,像我们今天跟的这个程序来说使用3级就可以了,所以我们按CTRL+N
7. 呵呵~~出现了我们可爱的TRW了吧,要是没有出来别也急,按按你的回车,空格,ESC.....或者按按鼠标看看行不
  行,要不重启动机器换用0级热键试试.
8. TRW的主界面由五部分组成,从最上面开始是存贮/寄存器窗,用来显示各存贮/寄存器的当前值.
9. 下面的一个窗口是数据窗口,是用来显示存贮器的内容的,在数据窗口的左面也就是由‘:’分开的两个值分别
  为段地址:偏移地址中间为"段地址:偏移"地址所存贮的16进制值,在右面是那些16进制值所对应的ASCII码.
10.数据窗下面是代码窗,也就是程序啦~~,高亮显示的那一行是机器将要(注意:是将要)处理的下一条指令.
11.在代码窗右上角的是堆栈窗,(所谓堆栈就是一段以先进后出为工作方式的存贮器(内存))它显示的是堆栈的:偏移地址和内容
12.在代码窗的下面是指令窗,在这里你可以对TRW下达你的指令.
13.TRW所有窗口的默认颜色是黑底蓝字,在白天不易看清,所以你可以下指令VER BLUE来改变它的颜色,如果你想
  它每次启动时都改变那你可以打开TRW2000.INI文件,把INIT="lines 35;wr 3;wd 8;wc 16;code on;"改成
  INIT="lines 35;wr 3;wd 8;wc 16;code on;ver blue"也就是把VER BLUE加在里面.
14.好了,在给TRW换完脸后就可以开始我们的主题了,呵呵~~~~~好累呀
15.在完成了1--5步后,CTRL+N呼出TRW
16.下指令BPX HMEMCPY //BPX是TRW的中断指令,这个命令的意思是当有内存COPY动作时就中断程序,切到TRW
17.下完上一个指令后按F5就又回到了目标软件,这时按下注册,呵呵~~~被TRW拦下来了吧,这里我们在代码
  窗口中看到的高亮代码就是中断的地方,是KERNEL!HMEMCPY对吧,那个KERNEL是内核的意思,(注意!!!我们
  可以看到在代码窗和指令窗的分界线上也有一个KERNEL标志,说明你在代码窗口中看到代码是内核程序,也就是
  现在的机器执行的程序还不是我们要跟的目标,怎么才能到我们要跟的目标呢?呵呵~~别急,TRW为我们专设了
  个指令PMODULE它可以使我们一下达到我们要跟的目标,怎么才知道我们到目标了呢?还是看我们刚才有KERNEL
  标志的那个地方,现在是不是变成了@#$%^&*1.11!CODE+XXXX,那个"@#$%^&*1.11"就是我们的"小李注册表大师1.11"
  呀,这个标志也就是可以常在破文中见到的领空,那里是谁就是谁的领空.
18.我们刚才在第16步下了一个断点HMEMCPY,只要我们不清除或不退出TRW它就会一直存在,很烦人(只要条件相同就中断)
  所以我们就要清除或关掉它,TRW为我们准备了好多中断指令在这里我们说几个常用的.BL是用来显示中断列表的,有时
  我们下了好多中断,要对其中的一个进行操做我们就要知道它在中断列表中的号码,这时我们就可以下指令BL
  我们的中断列表就会出现在指令窗中.现在我们有了各中断在列表中的号码就可以对它们操作了,BD XX(XX为号码),就
  是关掉XX号中断(并不是清除,只是关掉了,使用BL看列表时,前面有*的是关掉的中断),BE XX可以使关掉的XX号中断重
  新起作用.当我们以后不再使用某一个中断时,就可以用BC XX清除掉它,这时这个断点将被从中断列表中清除.另外还有
  BD *为关掉所以断点,BE *是使用全部断点,BC *是清除全部断点,以上指令可按当时情况使用.
19.我们在这里用BD关掉我们下的断点,然后就可以开始P了(什么是P呀??)呵呵~~~ P是TRW中的又一个指令,就是单步执行
  程序的意思,每执行一条指令就停下来.P指令有一个快捷键---F10,这下我们就不用一直P呀P的了,只要按F10就可以了.
20.好了,我们现在就可以开始P我们的目标了,看看它都做了点什么,我按F10按按..........你可以看到在寄存器窗中不
  时的有高亮显示,那是那个东东的值发生了改变,所以就被高亮显示了....在以后的使用中好好利用这一点.
21.在按F10时要注意看没有执行的代码中有没有像JXX一类的东东,要是有的话不要急着带过,停下来看看说不定那就是
  关键点,在这个例子中我们一直P到了下面(这里有个JNZ):

015F:0047F5B5 8D55EC          LEA      EDX,[EBP-14]
015F:0047F5B8 8B83E0020000    MOV      EAX,[EBX+02E0]
015F:0047F5BE E87506FBFF      CALL    0042FC38
015F:0047F5C3 8B45EC          MOV      EAX,[EBP-14]
015F:0047F5C6 8B55FC          MOV      EDX,[EBP-04]
015F:0047F5C9 E82247F8FF      CALL    00403CF0
015F:0047F5CE 755F            JNZ      0047F62F            (JUMP)

22.我们怎么才能知道这个JNZ是不是关建呢?肯定是要执行它啦~~但我们前面的不能白P呀,这时你可以在JNZ这条代码高亮
  时按F9,就在这条指令上下了一个断点,呵呵~~~怎么样方便吧?用BL看看,是不是有你刚下的断点啦~~~,有了断
  点我们还怕什么?继续P......没P几下注册失败的窗口就出来了,好了再次注册,点下注册,程序中断在我们刚刚用F9下的
  断点上了,为了进一步验证那个JNZ是不是关键点,我们这时可以玩个小把戏骗骗它,我们用TRW的A指令,这个指令可以让
  我们修改高亮代码和它后面的代码.(只是在内存中修改,没有写到原程序,重启动程序后又恢复原样)
23.我们下A后TRW会等待你输入新的代码,现在按回车可以放弃修改,可是我们怎么就能这样放弃了呢?我们把它改成
  JZ XXXXXXX 只去掉一个N别的都不变,按回车后TRW等你输入下一条指令,我们这里不需要修改下一条指令,所以我们
  再按一下回车退出.然后你可以看到在代码窗中我们改的JZ XXXXXXX了,OK,按F5看一下吧,哈哈~~~~~注册成功,看来我
  们是找对地方了。这里我又要讲一个新的TRW指令就是:CODE ON 这个指令可以在代码窗增加显示程序代码在程序文件
  中的十六进制形式,你可以记下JNZ那一行的十六进制码,把改成JZ后的也记下来,你就可以用十六制编辑器编辑程序
  文件,在里面找你记下的JNZ那一行的十六进制码,找到后把它改成JZ的那一组,保存,这就是爆破了。(我可没有说
  适用本例程哦~~~),与CODE ON 对应的还有CODE OFF就是关掉十六进制代码。
24.我们来学最后一个TRW指令---D ,这个指令可以用来显示你指定的存贮器(内存)或寄存器的内容,在我们这个例子中,
  按F10一直到这里时:
  015F:0047F5C3 8B45EC          MOV      EAX,[EBP-14]
  015F:0047F5C6 8B55FC          MOV      EDX,[EBP-04]<----这个高亮时下 D EAX 在数据窗的第一行就是EAX所指的
                                                            东西,呵呵~~是你自己输的吧
  015F:0047F5C9 E82247F8FF      CALL    00403CF0  <----这个高亮时下D EDX 你自己再看看EDX指向的是什么呢??
25. 另外CALL是程序在调用子程序,在CALL语句高亮时按F8就可以看到子子程序的执行过程了.

 
终于写完了,用了两天的空闲时间完成,希望可以给新来的朋友们一点点提示,以上的东东我是想起什么说什么,主意是想给新
手们介绍一下TRW这个好东东,当然这么短的文章不可能介绍到TRW的方方面面(呵呵~~我也知道多少).所以你要是想进一步的
学习使用TRW,还是看看TRW的使用说明吧.

过了十一我就要上学了(呵呵~~~不用军训了),也许我以后只能来这里做看客了,
祝新老朋友,万事如意,工作顺利,学有所成。。。。。
           
                翠花~~上酸菜~~~~~~~~~~

                                                  morning
                    Beginner's Cracking Group
                            2001.9.29

  • 标 题:贴这个的注册机~~` (534字)
  • 作 者:伪装者[CCG]
  • 时 间:2001-9-29 23:12:33

#include "stdio.h"
main()
{
unsigned char string[81];
int i,c;
long d=0;
printf("******RegMaster 1.11********\nThis keygen is made by Pretender\nPlease input your name  : ");
gets(string);
d=strlen(string);
d=(d+1)*19775;
printf("Your Register code is  : ");
for(i=0;(c=string[i])!='\0';i++)
d+=c;
printf("9%ld1",d);
printf("\n *****************************      ---    ---    ---\n *Welcome to WWW.CRACKNOW.COM*      /      /      / --\n *****************************      ---    ---    --/\n");}