首页
社区
课程
招聘
手脱自由棋王联众象棋助手1.5主程序。[原创]
发表于: 2006-2-12 20:27 10121

手脱自由棋王联众象棋助手1.5主程序。[原创]

2006-2-12 20:27
10121

手脱自由棋王联众象棋助手1.5主程序。
下载地址:  http://www.freespacelab.com/data/自由棋王联众象棋助手1.5.exe
软件大小:  9.36 MB
软件语言:  中文
软件类别:  国内软件 / 共享版 / 象棋外挂
应用平台:  Win9x/NT/2000/XP
开 发 商:  www.freespacelab.com  
软件简介: 自由棋王联众中国象棋助手1.5,棋力很强,帮您思考,帮你赢棋,你只需要点击一下开始走棋,自由棋王便可帮你走完整盘棋,可根据对手情况设置棋力,为了防止超时也可以选择每步走棋的时间!让你击败对手更轻松!可以设置象棋种类,联众版的两种象棋都可以支持!
版本 更新时间 更新功能
1.5 2006-01-15 加强了棋力,增加了对联众新版象棋的支持(修改了1.5测试版的BUG)
【调试环境】:WinXP、OllyDBG、PEiD、LordPE、ImportREC
【作者声明】:现在,象棋外挂横行,只有自己比他人更奸,才能防止别人奸,所以,我有4种连线器,有奇兵、世家、谢谢、楚汉棋缘、棋天大圣、棋隐、将神等各版本象棋软体,为了更好地知己知彼,百战百胜,我还下载了自由棋王联众象棋助手,这个程序注册费要100大圆。为了不侵犯作者利益,我使用的是我自己的破解版,这个程序,看fly的魔法转换脱壳XXXX遍,都不会成功的。因为这个程序用的是3.6以前版本加壳。
peid显示:Armadillo 3.00a - 3.61 -> Silicon Realms Toolworks,运行是双进程,CopyMem-II。外挂的壳都是很变态的。^_^
用IsDebug 1.4插件去掉Ollydbg的调试器标志。
一、找OEP
下断WaitForDebugEvent:
0012DAC4      004398E6  /CALL 到 WaitForDebugEvent 来自 自由棋王.004398E0
0012DAC8      0012EB74  |pDebugEvent = 0012EB74                            这里
0012DACC      000003E8  \Timeout = 1000. ms
中断后取消,再下断WriteProcessMemory:
0012D964      0043D421  /CALL 到 WriteProcessMemory 来自 自由棋王.0043D41B
0012D968      0000004C  |hProcess = 0000004C (window)
0012D96C      00401000  |Address = 401000
0012D970      003C26C0  |Buffer = 003C26C0                   注意这里
0012D974      00001000  |BytesToWrite = 1000 (4096.)
0012D978      0012DA80  \pBytesWritten = 0012DA80
看OEP:
0012EB74  00000001
0012EB78  00000B94
0012EB7C  00000B90
0012EB80  80000001
0012EB84  00000000
0012EB88  00000000
0012EB8C  00401EBC  自由棋王.00401EBC
0012EB90  00000002
0012EB94  00000000
0012EB98  00401EBC  自由棋王.00401EBC
0012EB9C  00401EBC  自由棋王.00401EBC

二、dump子程序
计算:00401EBC-00401000=EBC,003C26C0+EBC=003C357C
来到003C357C:
003C357C     68 60914000             push 409160
003C3581     E8 EEFFFFFF             call 003C3574
003C3586     0000                    add byte ptr ds:[eax],al
003C3588     40                      inc eax
记下68 60,然后修改成死循环:
003C357C   - EB FE                   jmp short 003C357C
003C357E     91                      xchg eax,ecx
003C357F     40                      inc eax
003C3580     00E8                    add al,ch
003C3582     EE                      out dx,al
003C3583     FFFF                    ???                                              ; 未知命令
003C3585     FF00                    inc dword ptr ds:[eax]
003C3587     0040 00                 add byte ptr ds:[eax],al
003C358A     0000                    add byte ptr ds:[eax],al
左键在堆栈窗口第一行点一下,然后alt+K:
调用堆栈
地址       堆栈       例程 / 参数                           调用来自                      Frame
0012D964   0043D421   ? kernel32.WriteProcessMemory         自由棋王.0043D41B
0012D968   0000004C     hProcess = 0000004C (window)
0012D96C   00401000     Address = 401000
0012D970   003C26C0     Buffer = 003C26C0
0012D974   00001000     BytesToWrite = 1000 (4096.)
0012D978   0012DA80     pBytesWritten = 0012DA80
0012DA8C   0043C12E   ? 自由棋王.0043C475                       自由棋王.0043C129       注意这里
0012DAC0   00439F8D   自由棋王.0043BCEF                         自由棋王.00439F88                 0012DABC
0012F590   004363C2   自由棋王.004381AB                         自由棋王.004363BD                 0012F58C
0012FCF8   00436C41   自由棋王.00435D1F                         自由棋王.00436C3C                 0012FCF4
0012FF10   0043F447   自由棋王.00436980                         自由棋王.0043F442                 0012FF0C
在自由棋王.0043C129上双击:
0043C129     E8 47030000             call 自由棋王.0043C475
0043C12E     83C4 0C                 add esp,0C
搜索全部命令:call 0043C475
0043C129   call 自由棋王.0043C475                (初始 CPU 选择)
0043C3E4   call 自由棋王.0043C475           这里
在0043C3E4 双击:
0043C3E4     E8 8C000000             call 自由棋王.0043C475
0043C3E9     83C4 0C                 add esp,0C
把0043C3E4     E8 8C000000             call 自由棋王.0043C475 NOP掉:
0043C3E4     90                      nop
0043C3E5     90                      nop
0043C3E6     90                      nop
0043C3E7     90                      nop
0043C3E8     90                      nop
取消全部断点,F9运行,loadpe选择子进程,选择arm插件,然后完整dump。

三、找IAT
用od载入dump.exe:
00451000 d>  60                      pushad
00451001     E8 00000000             call dumpe00d.00451006
00451006     5D                      pop ebp
00451007     50                      push eax
00451008     51                      push ecx
00451009     EB 0F                   jmp short dumpe00d.0045101A
0045100B     B9 EB0FB8EB             mov ecx,EBB80FEB
00451010     07                      pop es
ctrl+G 00401EBC ,并在这里新建EIP:
00401EBC   - EB FE                   jmp short dumpe00d.00401EBC
00401EBE     91                      xchg eax,ecx
00401EBF     40                      inc eax
00401EC0     00E8                    add al,ch
00401EC2     EE                      out dx,al
00401EC3     FFFF                    ???                                              ; 未知命令
00401EC5     FF00                    inc dword ptr ds:[eax]
00401EC7     0040 00                 add byte ptr ds:[eax],al
00401ECA     0000                    add byte ptr ds:[eax],al
恢复原来代码:
00401EBC     68 60914000             push dumpe00d.00409160
00401EC1     E8 EEFFFFFF             call dumpe00d.00401EB4
00401EC6     0000                    add byte ptr ds:[eax],al
00401EC8     40                      inc eax
00401EC9     0000                    add byte ptr ds:[eax],al
00401ECB     0030                    add byte ptr ds:[eax],dh
F7进入00401EC1     E8 EEFFFFFF             call dumpe00d.00401EB4:
00401EB4   - FF25 28124000           jmp dword ptr ds:[401228]    这里异常。
00401EBA     0000                    add byte ptr ds:[eax],al
00401EBC     68 60914000             push dumpe00d.00409160
在左下数据窗口ctrl+G 401228,向上和向下找IAT,以66结尾的地址如下:
00401000  2A 78 10 66 81 98 10 66  *xf?f
00401008  B9 F9 0D 66 06 88 0F 66  郭.f?f
00401010  79 FE 0E 66 E9 F9 0D 66  y?f轾.f
00401018  2E 6B 10 66 64 C1 0C 66  .kfd?f
00401020  4C EA 0F 66 DB 0D 0E 66  L?f?f
00401028  B4 8B 10 66 5F 5F 0E 66  ?f__f
00401030  F2 76 10 66 A2 72 10 66  蝣fⅡf
00401038  77 93 AB 00 3A F7 0E 66  w?.:?f
00401040  CF 8B 10 66 3B 9A 0D 66  ?f;?f
00401048  7B 65 0E 66 2E 0F 0E 66  {ef.f
00401050  C1 FD 0E 66 64 6A 0E 66  笼fdjf
00401058  4B AD 0D 66 9F 41 0E 66  K?f?f
00401060  6B 9B 0D 66 3A 5F 0E 66  k?f:_f
00401068  AB 58 0F 66 A9 6B 0E 66  ?f╇f
00401070  B8 AC 0D 66 5A C2 0C 66  脯.fZ?f
00401078  43 61 0E 66 EC 9C 0D 66  Caf?.f
00401080  6F 5F 0E 66 EE F6 0E 66  o_f铞f
00401088  9A 98 10 66 71 3A 10 66  ?fq:f
00401090  CC 99 10 66 BF B6 0D 66  ?f慷.f
00401098  BE CB 0D 66 C6 C1 0D 66  舅.f屏.f
004010A0  0C 94 10 66 0D 3F 0E 66  .?f.?f
004010A8  90 52 0F 66 FB C1 0D 66  ?f?.f
004010B0  A3 52 0F 66 F3 C5 0D 66  Rf笈.f
004010B8  69 9A 0D 66 62 3E 0E 66  i?fb>f
004010C0  86 F7 0E 66 E6 52 0F 66  ?f嬉f
004010C8  80 9A 0D 66 86 F8 0E 66  ?f?f
004010D0  FC B8 0D 66 7E DC 0C 66  ?.f~?f
004010D8  C9 53 0F 66 E5 6A 0E 66  捎f尻f
004010E0  DA 53 0F 66 15 8A 0E 66  谟f?f
004010E8  CF 54 0F 66 DB 75 10 66  显f埘f
004010F0  D8 B8 0D 66 C5 71 10 66  馗.f篷f
004010F8  6E 89 0F 66 A6 64 0E 66  n?f?f
00401100  19 77 0F 66 26 72 0E 66  wf&rf
00401108  F3 64 0E 66 01 9A 10 66  箐f?f
00401110  6A 57 0F 66 68 72 0E 66  jWfhrf
00401118  F7 3C 0D 66 94 9A 0C 66  ?.f?.f
00401120  17 74 0E 66 D1 B8 0D 66  tf迅.f
00401128  03 8A 0E 66 6F BB 0D 66  ?fo?f
00401130  36 98 10 66 BA 0E 0E 66  6?f?f
00401138  19 A0 00 66 F2 95 10 66  ?f?f
00401140  19 FA 0D 66 76 FE 0E 66  ?fv?f
00401148  85 8A 0E 66 65 8B 10 66  ?fe?f
00401150  4D FA 0D 66 CB B7 0D 66  M?f朔.f
00401158  11 AD 0D 66 A7 9A 0C 66  ?f?.f
00401160  7C 9C 0D 66 8E 0E 0E 66  |?f?f
00401168  13 8A 0F 66 C9 95 10 66  ?f?f
00401170  A5 99 0C 66 A4 0E 0E 66  ?.f?f
00401178  A0 76 10 66 A4 3C 0E 66  _vf?f
00401180  5B 72 0F 66 3D BE 0C 66  [rf=?f
00401188  93 72 0E 66 09 FB 0E 66  ?f.?f
00401190  3A F8 0E 66 C9 76 10 66  :?f肾f
00401198  10 43 0E 66 BA 73 0E 66  Cf后f
004011A0  DF 04 0E 66 08 04 0E 66  ?ff
004011A8  36 9A 10 66 53 75 10 66  6?fSuf
004011B0  56 84 0E 66 51 68 0E 66  V?fQhf
004011B8  1B BB 0D 66 FA 0D 0E 66  ?f?f
004011C0  41 5E 0E 66 E6 42 0E 66  A^f媛f
004011C8  70 03 0E 66 5A D3 0D 66  pfZ?f
004011D0  AB 88 0F 66 EE E3 0C 66  ?f钽.f
004011D8  9C 05 0E 66 68 AF 01 66  ?fh?f
004011E0  1D 3C 10 66 AF 9C 0D 66  <f?.f
004011E8  DC 77 10 66 BA F7 0E 66  荀f瑚f
004011F0  42 07 0E 66 BA F8 0E 66  Bf壶f
004011F8  33 08 0E 66 0E 61 0E 66  3faf
00401200  10 05 0E 66 A4 CF 0D 66  fは.f
00401208  A4 95 10 66 6B 9A 10 66  ?fk?f
00401210  C5 60 0E 66 EE F7 0E 66  培f铟f
00401218  1E 43 0E 66 7C 06 0E 66  Cf|f
00401220  29 F2 0E 66 2F E4 0D 66  )?f/?f
00401228  7C 35 00 66 4F 98 10 66  |5.fO?f
00401230  F4 42 0E 66 62 99 10 66  袈fb?f
00401238  01 78 10 66 9A BB 0D 66  xf?.f
00401240  36 6E 10 66 B2 A1 00 66  6nf病.f
00401248  2F C1 0D 66 1B 77 10 66  /?fwf
00401250  5E 62 0E 66 B0 75 10 66  ^bf磅f
00401258  F8 6B 10 66 85 AD 0D 66  ?f?.f
00401260  71 62 0E 66 40 87 0F 66  qbf@?f
00401268  62 63 0E 66 1D 5F 10 66  bcf_f
00401270  2D C1 0C 66 DF 42 0E 66  -?f呗f
00401278  F4 60 0E 66 F8 FA 0D 66  羿f?.f
00401280  75 63 0E 66 6D E3 0E 66  ucfm?f
00401288  DE 5F 0E 66 84 8B 10 66  捱f?f
00401290  C4 8A 0F 66 D8 42 0E 66  ?f芈f
00401298  8E 8C 0E 66 BD BB 0D 66  ?f交.f
004012A0  3A 94 10 66 91 D1 0E 66  :?f?f
004012A8  8F 70 0E 66 ED 42 0E 66  ?f砺f
004012B0  B0 60 0E 66 27 9A 0D 66  班f'?f
004012B8  D4 2D 0D 66              ?.f测
即IAT=401000到4012B8,大小:4012B8-401000=2B8

四、魔法跳
vb程序没有魔法跳。^_^

五、修复
运行原程序,IMPT选择子程序,OEP:00401EBC,RVA:00001000,大小:2B8,直接获取输入表,然后显示无效函数再剪切无效指针,修理抓取文件,改回dump.exe程序OEP代码6860。运行正常。
另外:不要给我写信要破解。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (9)
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
2
请教楼主:
文章在dump子程序时提到:
取消全部断点,F9运行,loadpe选择子进程,选择arm插件,然后完整dump。
我在该处有疑问:
我LORDPE里有2个进程,只能dump下一个,是不是它就是子进程?
第2个疑问:
od载入dump,ctrl+G 00401EBC ,看到的是:
00401EBC     0000             add byte ptr ds:[eax],al
00401EBE     0000             add byte ptr ds:[eax],al
00401EC0     0000             add byte ptr ds:[eax],al
而不是文中提到的:
00401EBC   - EB FE            jmp short dumpe00d.00401EBC
请楼主帮忙看我是哪里错了,谢谢了。
2006-2-13 11:18
0
雪    币: 277
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
3
你dump错了,应该是上面的那一个进程。dump时先右键 arm插件 选择。就可以了。
2006-2-13 13:09
0
雪    币: 417
活跃值: (475)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
4
谢谢。
再试了下,2个进程都可以dump,我就分别搞下来。
早上不晓得哪里弄错了,只能dump一个。
进程dll多的那个就是要的。
再次感谢!
2006-2-13 13:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢,学习了...自己也去做一次
2006-2-13 15:50
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我上次也弄了下这个程序,参照fly的方法,一直搞不定,今天终于看到了,
大虾,厉害,

但是,这么做的原理是什么呢
2006-2-15 13:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谢谢,学习一下
2006-2-16 14:16
0
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
8
学习了,大侠以后多写些教程给菜鸟看看.
2006-2-16 15:53
0
雪    币: 277
活跃值: (312)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
9
最初由 mydear256 发布
我上次也弄了下这个程序,参照fly的方法,一直搞不定,今天终于看到了,
大虾,厉害,

但是,这么做的原理是什么呢

下雨要打伞,下雪戴草帽,具体问题具体对待,版本不同,形式不同。
2006-2-16 19:45
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
不知道为什么后面的注释有许多是乱码?我试过好几种字符集,可结果都一样。真可惜没有看完整。
2006-2-17 13:31
0
游客
登录 | 注册 方可回帖
返回
//