- UID
 - 32038
 
 注册时间2007-5-6
阅读权限8
最后登录1970-1-1
初入江湖 
  
 
 
 
该用户从未签到  
 | 
 
【文章标题】: 菜鸟教学 
【文章作者】: PPwangS 
【作者邮箱】: PPwangS#GmaiL.com 
【作者主页】: HTTP://WwW.PPwangS.CoM.Cn 
【作者QQ号】: 39923929 
【软件名称】: Mocha W32 TN5250 9.3 
【下载地址】: http://www.onlinedown.net/soft/18076.htm 
【保护方式】: 注册码 
【使用工具】: OD 
【作者声明】: 偶是菜鸟,十分菜的菜鸟,啥都不懂的菜鸟,希望大侠们多多见谅,多多教导! 
-------------------------------------------------------------------------------- 
【详细过程】 
  通过TCP/IP和TN5250协议连接IBM主机远程登录软件,可以模拟IBM5250 终端。 
   
  —————————————————————————————————— 
  Peid查壳,没有,挺高兴。 
  运行,【Help】——>【about Mocha TN5250】,点注册, 
  输入试炼码: PPwangS,111111111111 
  弹出:wrong type of license key,记下来。 
  OD载入,超级字符串查找。 
  哇塞,竟然没有找到,怎么办。 
  不着急,慢慢来。 
  先F9运行,打开注册对话框,回到 OD,命令处输入:bp MessageBoxA,回车。 
  回到软件,点击注册。OD断下。Alt+F9返回,点击确定。 
  来到这里: 
   
  0047A98A  |. /EB 27         JMP SHORT mtn5250.0047A9B3 
  0047A98C  |> |895D FC       MOV DWORD PTR SS:[EBP-4],EBX 
  0047A98F  |. |FF75 14       PUSH DWORD PTR SS:[EBP+14]               ; /Style 
  0047A992  |. |FF75 10       PUSH DWORD PTR SS:[EBP+10]               ; |Title 
  0047A995  |. |FF75 0C       PUSH DWORD PTR SS:[EBP+C]                ; |Text 
  0047A998  |. |FF75 08       PUSH DWORD PTR SS:[EBP+8]                ; |hOwner 
  0047A99B  |. |FF15 04774C00 CALL DWORD PTR DS:[<&USER32.MessageBoxA>>; \MessageBoxA 
  0047A9A1  |. |8945 E4       MOV DWORD PTR SS:[EBP-1C],EAX 
  0047A9A4  |. |C745 FC FEFFF>MOV DWORD PTR SS:[EBP-4],-2 
  0047A9AB  |. |E8 0B000000   CALL mtn5250.0047A9BB 
  0047A9B0  |. |8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C] 
  0047A9B3  |> \E8 65DC0200   CALL mtn5250.004A861D 
  0047A9B8  \.  C3            RETN 
   
  往上找,没有发现可疑的地方,汇编不熟,怎么办捏。。 
  嗯,下万能断点试试吧。 
  点击插件,ApiBreak,万能断点。 
  回到软件,点击注册,一下子停下来啦。 
   
  77D3352D    F3:A5           REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS> 
  77D3352F    8BC8            MOV ECX,EAX 
  77D33531    83E1 03         AND ECX,3 
  77D33534    F3:A4           REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[> 
  77D33536    E8 E3FBFFFF     CALL USER32.77D3311E 
  77D3353B    5F              POP EDI 
  77D3353C    5E              POP ESI 
  77D3353D    8BC3            MOV EAX,EBX 
  77D3353F    5B              POP EBX 
  77D33540    5D              POP EBP 
  77D33541    C2 1000         RETN 10 
   
  看下右边寄存器,有自己的注册名,呵呵,看来这里就是了,继续继续。 
  F9,注意观察右边寄存器,15次之后,看见下面堆栈出现“wrong type of license key”字样了。 
  嗯,刚才确实是关键地方。 
   
  再试一次(偶是菜鸟,只能用笨方法),F9第14次的时候,停下来,Ctrl+F8我们让它自己过。 
  这时候你要紧紧的盯着右边寄存器,看看有啥熟悉的东西没。呵呵。 
  我看到我输入的注册码啦,F12赶紧停下来。 
  00424CAE   .  B9 4CFC5100   MOV ECX,mtn5250.0051FC4C //这是我F12断下的地方,你们呢? 
  00424CB3   .  C68424 9C0000>MOV BYTE PTR SS:[ESP+9C],4 
  00424CBB   .  E8 E0D4FDFF   CALL mtn5250.004021A0 
  00424CC0   .  8D46 F0       LEA EAX,DWORD PTR DS:[ESI-10] 
  00424CC3   .  889C24 980000>MOV BYTE PTR SS:[ESP+98],BL 
  00424CCA   .  8D50 0C       LEA EDX,DWORD PTR DS:[EAX+C] 
  00424CCD   .  83C9 FF       OR ECX,FFFFFFFF 
  00424CD0   .  F0:0FC10A     LOCK XADD DWORD PTR DS:[EDX],ECX         ;  锁定前缀 
   
  我们在那里下断吧。然后删掉所有万能断点,不然太烦啦! 
  再注册一次,已下载就段下来啦! 
  好了,往下跟吧,有希望哦! 
  找啊找,找到“wrong type of license key”出现了,哈哈。怎么办呢?当然入CALL了。 
  00424CAE   .  B9 4CFC5100   MOV ECX,mtn5250.0051FC4C 
  00424CB3   .  C68424 9C0000>MOV BYTE PTR SS:[ESP+9C],4 
  00424CBB   .  E8 E0D4FDFF   CALL mtn5250.004021A0 
  00424CC0   .  8D46 F0       LEA EAX,DWORD PTR DS:[ESI-10] 
  00424CC3   .  889C24 980000>MOV BYTE PTR SS:[ESP+98],BL 
  00424CCA   .  8D50 0C       LEA EDX,DWORD PTR DS:[EAX+C] 
  00424CCD   .  83C9 FF       OR ECX,FFFFFFFF 
  00424CD0   .  F0:0FC10A     LOCK XADD DWORD PTR DS:[EDX],ECX         ;  锁定前缀 
  00424CD4   .  49            DEC ECX 
  00424CD5   .  85C9          TEST ECX,ECX 
  00424CD7   .  7F 0A         JG SHORT mtn5250.00424CE3 
  00424CD9   .  8B08          MOV ECX,DWORD PTR DS:[EAX] 
  00424CDB   .  8B11          MOV EDX,DWORD PTR DS:[ECX] 
  00424CDD   .  50            PUSH EAX 
  00424CDE   .  8B42 04       MOV EAX,DWORD PTR DS:[EDX+4] 
  00424CE1   .  FFD0          CALL EAX 
  00424CE3   >  8BCF          MOV ECX,EDI 
  00424CE5   .  E8 D6FAFFFF   CALL mtn5250.004247C0  //F2先在这里下断,方便记忆,然后F7进入这里,应该就是算法啦! 
  00424CEA   .  85C0          TEST EAX,EAX 
  00424CEC   .  53            PUSH EBX                                 ; /Arg3 
  00424CED   .  75 19         JNZ SHORT mtn5250.00424D08               ; | 
  00424CEF   .  8B0D A8F85100 MOV ECX,DWORD PTR DS:[51F8A8]            ; | 
  00424CF5   .  53            PUSH EBX                                 ; |Arg2 
  00424CF6   .  51            PUSH ECX                                 ; |Arg1 => 00B9FB38 ASCII "Wrong type of license Key." 
  00424CF7   .  E8 58C60500   CALL mtn5250.00481354                    ; \mtn5250.00481354 
   
  F7进入这里,这里就是算法啦,有想学算法的把这里弄懂就OK啦! 
  004247C0   $  6A FF         PUSH -1 
  004247C2   .  68 58E84B00   PUSH mtn5250.004BE858 
  004247C7   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0] 
  004247CD   .  50            PUSH EAX 
  …… 
  …… 
  00424A3D   .  8B4C24 5C     MOV ECX,DWORD PTR SS:[ESP+5C] 
  00424A41   .  33CC          XOR ECX,ESP 
  00424A43   .  E8 1DEF0700   CALL mtn5250.004A3965 
  00424A48   .  83C4 6C       ADD ESP,6C 
   
  偶是菜鸟,就跳过,看看是不是明码比较。 
  往下F8,慢慢来,不着急,胜利或者失败都在远方啊! 
   
  00424B0A   .  8D70 01       LEA ESI,DWORD PTR DS:[EAX+1] //右边寄存器有一串数字很可疑,是不是注册码? 
  00424B0D   .  8D49 00       LEA ECX,DWORD PTR DS:[ECX] 
  00424B10   >  8A08          MOV CL,BYTE PTR DS:[EAX] 
  00424B12   .  83C0 01       ADD EAX,1 
  00424B15   .  84C9          TEST CL,CL 
   
  这里有些可疑哦。 
  EAX 0012F8DC ASCII "156976" 
  ECX 0101FAA0 ASCII "PPwangS" 
  EDX 0101F978 ASCII "111111111111" 
   
  试试吧,先,不管了。 
  打开软件填入 
  156976,确定,唉?怎么没反映? 
  看看 about 里。 
  哈哈,授权啦已经。 
  但是为什么是DEMO,疑惑中。 
-------------------------------------------------------------------------------- 
【经验总结】 
  用KEYMAKER做内存注册机吧,呵呵。 
  中断地址:00424B0A 
  中断次数:1 
  第一字节:8D 
  指令长度:3 
  看懂没?希望大侠可以出招,带带小的们,用更简单的方法来做做~~ 
   
-------------------------------------------------------------------------------- 
【版权声明】: 转载注明作者就可以啦! 
 
                                                       2007年07月04日 18:18:44 
 
  
  |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |