首页
社区
课程
招聘
快脱自由棋王联众象棋助手1.5
发表于: 2007-2-9 10:56 5790

快脱自由棋王联众象棋助手1.5

2007-2-9 10:56
5790
【文章标题】: 快脱自由棋王联众象棋助手1.5
【文章作者】: RCracker
【下载地址】: 自己搜索下载
【软件介绍】: 无
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
-----------------------------------------------------------------

---------------
【详细过程】
  一、找OEP+Dump子程序
  00451000 >  60              PUSHAD
  //进入OllyDbg后暂停在这
  00451001    E8 00000000     CALL 自由棋王.00451006
  00451006    5D              POP EBP
  00451007    50              PUSH EAX
  00451008    51              PUSH ECX
  00451009    EB 0F           JMP SHORT 自由棋王.0045101A
  0045100B    B9 EB0FB8EB     MOV ECX,EBB80FEB
  00451010    07              POP ES                              

    ; 段寄存器修饰
  00451011    B9 EB0F90EB     MOV ECX,EB900FEB
  00451016    08FD            OR CH,BH
  00451018    EB 0B           JMP SHORT 自由棋王.00451025
  0045101A    F2:             PREFIX REPNE:                        

    ; 多余前缀
  0045101B  ^ EB F5           JMP SHORT 自由棋王.00451012
  0045101D  ^ EB F6           JMP SHORT 自由棋王.00451015
  
  
  BP WaitForDebugEvent
  中断后取消断点,看堆栈:
  

~~~~~~~~~~~~~~~~~~~~~~~`~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  0012DAC4   004398E6  /CALL 到 WaitForDebugEvent 来自 自由棋

王.004398E0
  0012DAC8   0012EB74  |pDebugEvent = 0012EB74
  //数据窗口跟随
  0012DACC   000003E8  \Timeout = 1000. ms
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  
  
  现在去代码窗口Ctrl+G:004398E6
  Ctrl+F在当前位置下搜索命令:or eax,0FFFFFFF8
  找到第一处在00439F09处:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  00439EBF    D8F5            FDIV ST,ST(5)
  00439EC1    FFFF            ???                                 

    ; 未知命令
  00439EC3    000F            ADD BYTE PTR DS:[EDI],CL
  00439EC5    8C41 02         MOV WORD PTR DS:[ECX+2],ES
  00439EC8    0000            ADD BYTE PTR DS:[EAX],AL
  00439ECA    8B8D D8F5FFFF   MOV ECX,DWORD PTR SS:[EBP-A28]
  00439ED0    3B0D DC4A4600   CMP ECX,DWORD PTR DS:[464ADC]
  00439ED6    0F8D 2F020000   JGE 自由棋王.0043A10B
  00439EDC    8B95 48F6FFFF   MOV EDX,DWORD PTR SS:[EBP-9B8]
  00439EE2    81E2 FF000000   AND EDX,0FF
  00439EE8    85D2            TEST EDX,EDX
  00439EEA    0F84 AD000000   JE 自由棋王.00439F9D
  00439EF0    6A 00           PUSH 0
  00439EF2    8BB5 D8F5FFFF   MOV ESI,DWORD PTR SS:[EBP-A28]
  00439EF8    C1E6 04         SHL ESI,4
  00439EFB    8B85 D8F5FFFF   MOV EAX,DWORD PTR SS:[EBP-A28]
  00439F01    25 07000080     AND EAX,80000007
  00439F06    79 05           JNS SHORT 自由棋王.00439F0D
  00439F08    48              DEC EAX
  00439F09    83C8 F8         OR EAX,FFFFFFF8
  //返回到这里
  00439F0C    40              INC EAX
  00439F0D    33C9            XOR ECX,ECX
  00439F0F    8A88 30424600   MOV CL,BYTE PTR DS:[EAX+464230]
  00439F15    8B95 D8F5FFFF   MOV EDX,DWORD PTR SS:[EBP-A28]
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  
  
  Ctrl+a分析:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  00439EBD   > \83BD D8F5FFFF>CMP DWORD PTR SS:[EBP-A28],0
  //在这里下断,Shift+F9中断下来
  00439EC4   .  0F8C 41020000 JL 自由棋王.0043A10B
  00439ECA   .  8B8D D8F5FFFF MOV ECX,DWORD PTR SS:[EBP-A28]
  00439ED0   .  3B0D DC4A4600 CMP ECX,DWORD PTR DS:[464ADC]
  00439ED6   .  0F8D 2F020000 JGE 自由棋王.0043A10B
  00439EDC   .  8B95 48F6FFFF MOV EDX,DWORD PTR SS:[EBP-9B8]
  00439EE2   .  81E2 FF000000 AND EDX,0FF
  00439EE8   .  85D2          TEST EDX,EDX
  ----------------------省略部分代码------------------------
  00439F88   .  E8 621D0000   CALL 自由棋王.0043BCEF
  00439F8D   .  83C4 0C       ADD ESP,0C
  00439F90   .  25 FF000000   AND EAX,0FF
  //这里Patch ★
  00439F95   .  85C0          TEST EAX,EAX
  00439F97   . /0F84 6E010000 JE 自由棋王.0043A10B
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  
  Patch代码:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  inc DWORD PTR SS:[EBP-0A28]
  mov DWORD PTR DS:[464ADC+4],1
  jmp 00439EC4
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  
  同时看堆栈:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  0012EB84  00000000
  0012EB88  00000000
  0012EB8C  00401EBC  自由棋王.00401EBC
  //00401EBC就是OEP
  0012EB90  00000002
  0012EB94  00000000
  0012EB98  00401EBC  自由棋王.00401EBC
  0012EB9C  00401EBC  自由棋王.00401EBC
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  
  在0043A10B下断点:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  0043A0FF   >  61            POPAD
  0043A100   .  9D            POPFD
  0043A101   >  C785 E0F5FFFF>MOV DWORD PTR SS:[EBP-A20],10002     

    ;  UNICODE "::=::\"
  0043A10B   >  E9 FB0D0000   JMP 自由棋王.0043AF0B
  //在这里下断点,Shift+F9中断下来
  0043A110      8B            DB 8B
  0043A111      8D            DB 8D
  0043A112      E4            DB E4
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  运行LordPE,直接Dump出子进程
  
  
  二、找IAT
  OD载入dumped.exe:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  00451000 >  60              PUSHAD
  //停在这里
  00451001    E8 00000000     CALL dumped.00451006
  00451006    5D              POP EBP
  00451007    50              PUSH EAX
  00451008    51              PUSH ECX
  00451009    EB 0F           JMP SHORT dumped.0045101A
  0045100B    B9 EB0FB8EB     MOV ECX,EBB80FEB
  00451010    07              POP ES                              

    ; 段寄存器更改
  00451011    B9 EB0F90EB     MOV ECX,EB900FEB
  00451016    08FD            OR CH,BH
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  
  Ctrl+g 到 00401EBC
  新建EIP:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  00401EBC    68 60914000     PUSH dumped.00409160
  00401EC1    E8 EEFFFFFF     CALL dumped.00401EB4
  //F7进入
  00401EC6    0000            ADD BYTE PTR DS:[EAX],AL
  00401EC8    40              INC EAX
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  
  F7进入:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  00401EB4  - FF25 28124000   JMP DWORD PTR DS:[401228]
  //注意这里
  00401EBA    0000            ADD BYTE PTR DS:[EAX],AL
  00401EBC    68 60914000     PUSH dumped.00409160
  00401EC1    E8 EEFFFFFF     CALL dumped.00401EB4
  00401EC6    0000            ADD BYTE PTR DS:[EAX],AL
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  
  数据窗口Ctrl+g到 401228:
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  00401000  6610782A
  00401004  66109881
  ---省略很多代码---
  00401288  660E5FDE
  //Ctrl+g到这里
  004012B0  660E60B0
  004012B4  660D9A27
  004012B8  660D2DD4
  

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~
  三、修复
  运行自由棋王联众象棋助手.exe及ImportREC:
  OEP RVA=1EBC
  RVA=1000
  SIZE=4012B8-401000=2B8
  剪去无效函数,修复,运行OK!
  
-----------------------------------------------------------------

---------------
【经验总结】
  没什么技术含量,仅供参考.
  
-----------------------------------------------------------------

---------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完

整, 谢谢!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
顶一下高人再说
2007-2-10 16:10
0
雪    币: 277
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
3
学习
2007-2-10 21:10
0
雪    币: 146
活跃值: (33)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
弄死你  现在网上下棋,巨多人作弊
2007-2-11 10:39
0
游客
登录 | 注册 方可回帖
返回
//