首页
社区
课程
招聘
[旧帖] [原创]E语言Memory map中找不到.ECODE的解决办法 0.00雪花
发表于: 2008-12-10 11:38 4886

[旧帖] [原创]E语言Memory map中找不到.ECODE的解决办法 0.00雪花

2008-12-10 11:38
4886
在网上看到很多朋友遇到E语言的程序,调试时却在MEMORY MAP(此处简称MM,快捷键为ALT+M)中找不到.ECODE的问题,想搜索字符串却无能为力。我也遇到了这样的问题,看到飘云阁的朋友有给出的方法:

“易语言程序到入口的方法  载入后 搜索二进制FC DB E3  就到入口了
然后就可以看到字符串了”

我试了几次,均找不到。经过自己摸索发现:

新版的ECODE已经做了很多改进,我们在MM中根本是找不到.ECODE的,那是不是就没办法了呢?其实.ECODE是没有消失的,而是被.DATA代替了,解决方法如下:

以某个小软件为例:
OD载入后,代码定位在此处:
00401000 >/$  E8 06000000   CALL 嘉年华.0040100B
00401005  |.  50            PUSH EAX                                 ; /ExitCode
00401006  \.  E8 BB010000   CALL <JMP.&KERNEL32.ExitProcess>         ; \ExitProcess
0040100B  /$  55            PUSH EBP
0040100C  |.  8BEC          MOV EBP,ESP
0040100E  |.  81C4 F0FEFFFF ADD ESP,-110
00401014  |.  E9 83000000   JMP 嘉年华.0040109C
00401019  |.  52 75 6E 73 2>ASCII "Runs.dll",0
00401022  |   00            DB 00
00401023  |.  52 75 6E 73 2>ASCII "Runs.dll",0
0040102C  |   00            DB 00
0040102D  |.  47 65 74 4E 6>ASCII "GetNewSock",0
00401038  |.  73 6F 66 74 7>ASCII "software\Y_GUA",0
00401047  |.  5C 45 5C 49 6>ASCII "\E\Install",0
00401052  |.  50 61 74 68 0>ASCII "Path",0
00401057  |.  4E 6F 74 20 6>ASCII "Not found the ke"
00401067  |.  72 6E 65 6C 2>ASCII "rnel library or "
00401077  |.  74 68 65 20 6>ASCII "the kernel libra"
00401087  |.  72 79 20 69 7>ASCII "ry is invalid!",0
00401096  |.  45 72 72 6F 7>ASCII "Error",0
0040109C  |>  8D85 FCFEFFFF LEA EAX,DWORD PTR SS:[EBP-104]

此时,ALT+M(因无法整个复制,我只好捉图如下),



将光标定位在以程序名(如嘉年华)为属主,区段为.data的那一行,然后F2设置断点,再F9运行,
程序被断在某一模块中:
1002986D    8B42 30         MOV EAX,DWORD PTR DS:[EDX+30]
10029870    83E0 01         AND EAX,1
10029873    85C0            TEST EAX,EAX
10029875    75 10           JNZ SHORT Runs.10029887
10029877    8B4D 08         MOV ECX,DWORD PTR SS:[EBP+8]
1002987A    51              PUSH ECX
1002987B    8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
1002987E    E8 5D5F0300     CALL Runs.1005F7E0
10029883    FFE0            JMP EAX
10029885    EB 0E           JMP SHORT Runs.10029895
10029887    8B55 08         MOV EDX,DWORD PTR SS:[EBP+8]
1002988A    52              PUSH EDX
1002988B    8B4D F8         MOV ECX,DWORD PTR SS:[EBP-8]
1002988E    E8 4D5F0300     CALL Runs.1005F7E0
10029893    FFD0            CALL EAX
10029895    8945 FC         MOV DWORD PTR SS:[EBP-4],EAX
10029898    8B45 FC         MOV EAX,DWORD PTR SS:[EBP-4]
1002989B    5F              POP EDI
1002989C    5E              POP ESI
1002989D    5B              POP EBX
1002989E    8BE5            MOV ESP,EBP
100298A0    5D              POP EBP
100298A1    C2 0400         RETN 4
100298A4    55              PUSH EBP

此时,F8单步若干步(大概为9步)后,跳到如下代码处:

00420A69    FC              CLD                                      ; (Initial CPU selection)
00420A6A    DBE3            FINIT                                    ; 其实此处也就是朋友们都知道的E程序入口点,到此我们就成功了
00420A6C    E8 6BFFFFFF     CALL 嘉年华.004209DC
00420A71    68 240A4200     PUSH 嘉年华.00420A24
00420A76    B8 03000000     MOV EAX,3
00420A7B    E8 5E000000     CALL 嘉年华.00420ADE
00420A80    83C4 04         ADD ESP,4
00420A83    E8 EACBFFFF     CALL 嘉年华.0041D672
00420A88    E8 32FFFFFF     CALL 嘉年华.004209BF
00420A8D    E8 05BAFFFF     CALL 嘉年华.0041C497
00420A92    E8 4B73FFFF     CALL 嘉年华.00417DE2
00420A97    E8 6463FFFF     CALL 嘉年华.00416E00
00420A9C    E8 125EFFFF     CALL 嘉年华.004168B3
00420AA1    E8 2A5EFFFF     CALL 嘉年华.004168D0
00420AA6    E8 5AB5FFFF     CALL 嘉年华.0041C005
00420AAB    E8 8E84FFFF     CALL 嘉年华.00418F3E
00420AB0    68 01000152     PUSH 52010001
00420AB5    E8 1E000000     CALL 嘉年华.00420AD8
00420ABA    83C4 04         ADD ESP,4
00420ABD    6A 00           PUSH 0
00420ABF    E8 0E000000     CALL 嘉年华.00420AD2
00420AC4    E8 03000000     CALL 嘉年华.00420ACC
00420AC9    83C4 04         ADD ESP,4
00420ACC  - FF25 FF5E4100   JMP DWORD PTR DS:[415EFF]                ; Runs.1002A248

此时,你就可以利用超级字串参考来搜索字符串了,有遇到类似的朋友们,不妨去试试。

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

上传的附件:
  • 1.jpg (85.86kb,90次下载)
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 136
活跃值: (105)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
2
易语言程序到入口的方法  载入后 搜索二进制FC DB E3  就到入口了

自己没掌握od的使用 alt+m 搜索二进制FC DB E3 就可以找到了 这个方式暂时通杀
2008-12-10 11:56
0
游客
登录 | 注册 方可回帖
返回
//