-
-
手脱自由棋王联众象棋助手1.5主程序。[原创]
-
发表于:
2006-2-12 20:27
10148
-
手脱自由棋王联众象棋助手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。运行正常。
另外:不要给我写信要破解。
[注意]APP应用上架合规检测服务,协助应用顺利上架!