首页
社区
课程
招聘
为什么脱Mjqchess1075.exe的Aspack2.12,程序依然不能运行
发表于: 2004-10-10 20:16 4754

为什么脱Mjqchess1075.exe的Aspack2.12,程序依然不能运行

2004-10-10 20:16
4754
初学破者,真的是不懂呀,高手千万莫笑,指点一下吧。
    我的QQ:339171218  UC账号:79656864 信箱:zhouxiongfei33@tom.com
    不经常上网。

    软件名称:mjqchess1075.exe
    软件出处:中国共享软件注册中心及各下载站。
    软件简介:一个中国象棋软件,界面美丽,棋力还过得去。未注册版在使
用过程中,会隔一段时间出现要求注册的nag,停止运行20秒,是名符其实的nag。现在位于各下
载站的首位。主程序540KB。
    用过的工具:trw ,olldbg,W32Dsm8.93,peid, Import REConstructor v1.6 FINAL
    目标:注册码,或是爆破(去掉它的Nag)
    成果:不成功
                                                               
    作者说是一机一码,用的是机器码
    用娃娃修改的trw1.22载入,启动mjqchess1075,点击注册,
该软件竟然立即杀死trw2000。我眼睁睁地看着trw从任务栏中消失了。
其它版本的如1.23版也是不行的呀。
    用侦壳软件知其为Aspack2.12。
用Aspackdie141去脱壳,显示为Aspack2.12,脱壳成功。脱壳后1.83MB,不过却
不能运行。不过现在能用w32dsm8.93反编译脱壳后的文件,看到可以显示“参考字符串”,
不过大多是乱码,没有找到出错messagebox。
   
    修改资源,将中文改为英文,可以知道它的这个NAG,就是对话框为180,即DialogID_00B4,有很多地方会调用它,不过它根本不能运行呀,总得先解决这个问题呀!!!
   
    那就用ollydbg-v1.10H吧,可是一按F9,运行,mjqchess1075.exe和ollydbg一块儿消失了。
    看来不脱壳是无法追注册码的啦。

    用冲击波知其oep入口点为:004046F4(经过测试,这是错误的)
    实际经过跟踪发现其真正入口却是0040CEF4
    请看脱过全过程:
    启动TRW,Browse指向mjqchess1075.exe,点击Load载入,
0187:005D4001 60               PUSHA               :停在这里
0187:005D4002 E803000000       CALL     005D400A   :按F8跟进
0187:005D4007 E9EB045D45       JMP      45BA44F7
0187:005D400C 55               PUSH     EBP
按F8后就来到这里:
0187:005D400A 5D               POP      EBP        :停在这里
0187:005D400B 45               INC      EBP
0187:005D400C 55               PUSH     EBP
0187:005D400D C3               RET     
一路按F10,则Return到这里:
0187:005D4008 EB04             JMP      SHORT 005D400E
0187:005D400A 5D               POP      EBP
0187:005D400B 45               INC      EBP
0187:005D400C 55               PUSH     EBP
0187:005D400D C3               RET     
0187:005D400E E801000000       CALL     005D4014   :按F8跟进
就会到这里:
0187:005D4014 5D               POP      EBP
0187:005D4015 BBEDFFFFFF       MOV      EBX,FFFFFFED
0187:005D401A 03DD             ADD      EBX,EBP
0187:005D401C 81EB00401D00     SUB      EBX,001D4000
0187:005D4022 83BD2204000000   CMP      DWORD [EBP+0422],BYTE +00
0187:005D4029 899D22040000     MOV      [EBP+0422],EBX
0187:005D402F 0F8565030000     JNZ      NEAR 005D439A             (NO JUMP) :看这里,好经典呀!在这里设断
0187:005D4035 8D852E040000     LEA      EAX,[EBP+042E]
0187:005D403B 50               PUSH     EAX
0187:005D403C FF954D0F0000     CALL     NEAR [EBP+0F4D]
0187:005D4042 898526040000     MOV      [EBP+0426],EAX
0187:005D4048 8BF8             MOV      EDI,EAX
0187:005D404A 8D5D5E           LEA      EBX,[EBP+5E]
0187:005D404D 53               PUSH     EBX
0187:005D404E 50               PUSH     EAX
看我设断:
bpx 005D439A回车
按F5
中断在这里:
0187:005D439A B8F4CE0000       MOV      EAX,CEF4
0187:005D439F 50               PUSH     EAX
0187:005D43A0 038522040000     ADD      EAX,[EBP+0422]
0187:005D43A6 59               POP      ECX
0187:005D43A7 0BC9             OR       ECX,ECX
0187:005D43A9 8985A8030000     MOV      [EBP+03A8],EAX
0187:005D43AF 61               POPA                       :说明快出来了。过了这一行后,0187:005D43BA 6800000000       PUSH     DWORD 00会立即变成Dword 0040CEF4

0187:005D43B0 7508             JNZ      005D43BA
0187:005D43B2 B801000000       MOV      EAX,01
0187:005D43B7 C20C00           RET      0C
0187:005D43BA 6800000000       PUSH     DWORD 00
RET返回就到了真正的入口点
到了这里:
0187:0040CEF4 55               PUSH     EBP                :光标就停在这里,在这里Suspend,可以用专用脱壳工具脱壳
0187:0040CEF5 8BEC             MOV      EBP,ESP
0187:0040CEF7 6AFF             PUSH     BYTE -01
0187:0040CEF9 6830E24000       PUSH     DWORD 0040E230
0187:0040CEFE 687AD04000       PUSH     DWORD 0040D07A
0187:0040CF03 64A100000000     MOV      EAX,[FS:00]
我将它Dump下来后,
噢,忘记了告诉各位大侠,我是在98se中进行的。
启动RecImport.exe,在OEP中填入CEF4
点击AutoSearch IAT,提示找了一些东东,
点击Get import
有一个No
右击它,Tracer Level1然后又"Show Invalid"
有一个指针错误
看:RVA 0000E200 库名 MFC42.dll ord:0320函数
    RVA 00000E204 Ptr:00402390
右击它,Tracer Level2,然后又"Show Invalid”
依然无效
点击"Show Suspect"有一个函数出现
点击"Auto Trace"
居然都Yes了呀!!
点击:Fix dump
成功。
关闭所有调试工具。
启动Dump_.exe,依然没有出现启动画面呀,各大侠帮我!!!
后记:
Aspack2.12应该不难呀,可“为什么出错的总是我呀!”
谁能让它运行起来呢?Aspack2.12需要修复IAT吗?还是别的地方弄错了呢?
19:52 04-10-10

[课程]Android-CTF解题方法汇总!

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 2899
活跃值: (1753)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
2
是因为函数未修正还是有效验?
我分析了一下,这个指针指向的地方根本就没有函数呀。
2004-10-14 11:24
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
3
检验
2004-10-14 12:50
0
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
4
我也不大懂

其实这个程序已经脱壳了

但是他在运行之后生成另外一个线程 ischess.mjq

好像这个线程不能正常启动

运行没有脱壳的源程序,探出注册对话框,用OD附上 ischess.mjq 这个进程

但我却没有找到合适的断点拦截,偶太菜了

――――――――――――――――
学习学习学习中,上学苦哇
2005-1-15 19:43
0
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
5
刚出来的精华六里有一篇破mjqchess.exe的文章,说是1.5版本的,有点像,仔

细看了又不是,不能借鉴,可惜

――――――――――――
学习学习学习中
2005-1-15 19:48
0
游客
登录 | 注册 方可回帖
返回
//