冥界3大法王 发表于 2022-10-11 20:49

EditPlus 5.6 build 4772 按下Ctrl+B浏览器预览bug的解决

本帖最后由 冥界3大法王 于 2022-10-12 08:29 编辑

这个编辑器法王姥爷已经很多年没用过了。这两天看到某pdf书籍里时就偶尔安了个最新版本试一下
结果随便打开个*.html ,按下Ctrl+B ,使用浏览器 预览,就会触发下面的

如图所示,工具栏第二排左下角的那个按钮
的bug,就算你打了官方提供的补丁包也是无济于事。。。。
所以,我们就来汇编修补下吧。
咱下载的是32位的,所以就用x32dbg来打开它吧。
话不多说,当这个弹框出现后,你可以采用多种方法定位到。

[*]搜索全部模块,所有字符串
[*]使用string插件
[*]利用暂停回溯法
[*]既然是弹框,那就用弹框类的api
[*]利用跟踪窗口
[*]利用句柄窗口
[*]最笨的方法,随便找个前置断点,按下热键Ctrl+F8 ,当Ctrl+B 走到关键点上就会触发
[*]下窗口类断点
[*]把光标移到该工具栏上,我们得知Browser字符串恐怕会调用,所以全下断,果然能断到开始的地方


开始曾经怀疑过有反调试:



你能搜索到好多。
你可以顺手给主模块下一个

当你按Ctrl+B时就会来到此处
WebView2Loader.dll是啥? 那是源于Edge dev内核浏览器,开发Delphi浏览器控件所必须的文件支持。
接下来连按几次Ctrl+F9来到调用返回的地方
也可以结合堆栈窗口的地址,回车前往。
又或者 ,可以用前面找到的
001D4451   | B9 E80E3700             | mov ecx,editplus.370EE8                      | 370EE8:L"Browser"调用提示处的 字符

不论咋样,你定位到了。

001D4320 <ed | 55                      | push ebp                                     | 这里是开始的地方!
001D4321   | 8BEC                  | mov ebp,esp                                  |
001D4323   | 6A FF                   | push FFFFFFFF                              |
001D4325   | 68 FD583300             | push <editplus.sub_3358FD>                   |
001D432A   | 64:A1 00000000          | mov eax,dword ptr fs:                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", :"D蟪"
001D4330   | 50                      | push eax                                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4331   | 83EC 0C               | sub esp,C                                    |
001D4334   | A1 B82A3A00             | mov eax,dword ptr ds:                | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4339   | 33C5                  | xor eax,ebp                                  |
001D433B   | 8945 F0               | mov dword ptr ss:,eax                |
001D433E   | 53                      | push ebx                                     |
001D433F   | 56                      | push esi                                     | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4340   | 57                      | push edi                                     | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4341   | 50                      | push eax                                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4342   | 8D45 F4               | lea eax,dword ptr ss:               |
001D4345   | 64:A3 00000000          | mov dword ptr fs:,eax                     | :"D蟪", eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D434B   | 8B75 14               | mov esi,dword ptr ss:                |
001D434E   | 8B5D 08               | mov ebx,dword ptr ss:               | :L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4351   | 8B34B5 40ED3B00         | mov esi,dword ptr ds:          | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4358   | 85F6                  | test esi,esi                                 | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D435A   | 0F84 90000000         | je editplus.1D43F0                           |
001D4360   | 83FE 07               | cmp esi,7                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4363   | 0F84 87000000         | je editplus.1D43F0                           |
001D4369   | 83FE 01               | cmp esi,1                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D436C   | 75 0C                   | jne editplus.1D437A                        |
001D436E   | 8B55 0C               | mov edx,dword ptr ss:               |
001D4371   | 8BCB                  | mov ecx,ebx                                  |
001D4373   | E8 A8FEFFFF             | call <editplus.sub_1D4220>                   |
001D4378   | EB 5D                   | jmp editplus.1D43D7                        |
001D437A   | 83FE 05               | cmp esi,5                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D437D   | 75 15                   | jne editplus.1D4394                        |
001D437F   | 8B0D 208F3C00         | mov ecx,dword ptr ds:                |
001D4385   | 8379 F4 00            | cmp dword ptr ds:,0                   |
001D4389   | 7E 50                   | jle editplus.1D43DB                        |
001D438B   | 8BD3                  | mov edx,ebx                                  | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D438D   | E8 9EF7FFFF             | call editplus.1D3B30                         |
001D4392   | EB 43                   | jmp editplus.1D43D7                        |
001D4394   | 33C0                  | xor eax,eax                                  | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4396   | 83FE 02               | cmp esi,2                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4399   | 75 0A                   | jne editplus.1D43A5                        |
001D439B   | B9 5C0F3700             | mov ecx,editplus.370F5C                      | 370F5C:L"htmlfile"
001D43A0   | 8D46 FF               | lea eax,dword ptr ds:               | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43A3   | EB 22                   | jmp editplus.1D43C7                        |
001D43A5   | 83FE 06               | cmp esi,6                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43A8   | 75 07                   | jne editplus.1D43B1                        |
001D43AA   | B9 700F3700             | mov ecx,editplus.370F70                      | 370F70:L"FirefoxHTML"
001D43AF   | EB 16                   | jmp editplus.1D43C7                        |
001D43B1   | 83FE 03               | cmp esi,3                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43B4   | 75 07                   | jne editplus.1D43BD                        |
001D43B6   | B9 880F3700             | mov ecx,editplus.370F88                      | 370F88:L"ChromeHTML"
001D43BB   | EB 0A                   | jmp editplus.1D43C7                        |
001D43BD   | 83FE 04               | cmp esi,4                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43C0   | 75 19                   | jne editplus.1D43DB                        |
001D43C2   | B9 A00F3700             | mov ecx,editplus.370FA0                      | 370FA0:L"MSEdgeHTM"
001D43C7   | 6A 00                   | push 0                                       |
001D43C9   | 50                      | push eax                                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43CA   | FF75 0C               | push dword ptr ss:                  |
001D43CD   | 8BD3                  | mov edx,ebx                                  | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43CF   | E8 8CF8FFFF             | call <editplus.sub_1D3C60>                   |
001D43D4   | 83C4 0C               | add esp,C                                    |
001D43D7   | 85C0                  | test eax,eax                                 | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43D9   | 75 0E                   | jne editplus.1D43E9                        | 好蛋!
001D43DB   | 6A FF                   | push FFFFFFFF                              |
001D43DD   | 6A 00                   | push 0                                       |
001D43DF   | 68 7A4E0000             | push 4E7A                                    |
001D43E4   | E8 56130F00             | call <editplus.sub_2C573F>                   |
001D43E9   | 33C0                  | xor eax,eax                                  | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43EB   | E9 42010000             | jmp editplus.1D4532                        |
001D43F0   | C745 EC 00000000      | mov dword ptr ss:,0                  | 貌似这里是好蛋才走的分支!!!
001D43F7   | E8 82FA0E00             | call <editplus.sub_2C3E7E>                   |
001D43FC   | 8BC8                  | mov ecx,eax                                  | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D43FE   | 85C9                  | test ecx,ecx                                 |
001D4400   | 0F84 4A010000         | je editplus.1D4550                           |
001D4406   | 8B01                  | mov eax,dword ptr ds:                   | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4408   | FF50 0C               | call dword ptr ds:                  |
001D440B   | 83C0 10               | add eax,10                                 | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D440E   | 8945 EC               | mov dword ptr ss:,eax                |
001D4411   | C745 FC 00000000      | mov dword ptr ss:,0                   |
001D4418   | 33FF                  | xor edi,edi                                  | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D441A   | 8B0D 64DE3A00         | mov ecx,dword ptr ds:                | 003ADE64:&"渜6"
001D4420   | E8 211E1000             | call <editplus.sub_2D6246>                   |
001D4425   | 8945 E8               | mov dword ptr ss:,eax                |
001D4428   | 85C0                  | test eax,eax                                 | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D442A   | 74 61                   | je editplus.1D448D                           |
001D442C   | 0F1F40 00               | nop dword ptr ds:,eax                   |
001D4430   | 8B0D 64DE3A00         | mov ecx,dword ptr ds:                | 003ADE64:&"渜6"
001D4436   | 8D45 E8               | lea eax,dword ptr ss:                |
001D4439   | 50                      | push eax                                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D443A   | E8 281E1000             | call editplus.2D6267                         |
001D443F   | 8BF8                  | mov edi,eax                                  | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4441   | 8D45 EC               | lea eax,dword ptr ss:                |
001D4444   | 6A 02                   | push 2                                       |
001D4446   | 50                      | push eax                                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4447   | 8BCF                  | mov ecx,edi                                  | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4449   | 8B17                  | mov edx,dword ptr ds:                   | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", :"ableW"
001D444B   | FF52 64               | call dword ptr ds:                   |
001D444E   | 8B55 EC               | mov edx,dword ptr ss:                |
001D4451   | B9 E80E3700             | mov ecx,editplus.370EE8                      | 370EE8:L"Browser"
001D4456   | 66:8B02               | mov ax,word ptr ds:                     | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4459   | 66:3B01               | cmp ax,word ptr ds:                     |
001D445C   | 75 1E                   | jne editplus.1D447C                        |
001D445E   | 66:85C0               | test ax,ax                                 |
001D4461   | 74 15                   | je editplus.1D4478                           |
001D4463   | 66:8B42 02            | mov ax,word ptr ds:                   |
001D4467   | 66:3B41 02            | cmp ax,word ptr ds:                   |
001D446B   | 75 0F                   | jne editplus.1D447C                        |
001D446D   | 83C2 04               | add edx,4                                    | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4470   | 83C1 04               | add ecx,4                                    |
001D4473   | 66:85C0               | test ax,ax                                 |
001D4476   | 75 DE                   | jne editplus.1D4456                        |
001D4478   | 33C0                  | xor eax,eax                                  | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D447A   | EB 05                   | jmp editplus.1D4481                        |
001D447C   | 1BC0                  | sbb eax,eax                                  | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D447E   | 83C8 01               | or eax,1                                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4481   | 85C0                  | test eax,eax                                 | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4483   | 74 2F                   | je editplus.1D44B4    ======>这句之后下面跳转到了微软的网站(改成JMP程序不退出,但也不打开浏览器!
NOP就会弹出浏览器版本IE3过低
001D4485   | 837D E8 00            | cmp dword ptr ss:,0                  |
001D4489   | 75 A5                   | jne editplus.1D4430                        |
001D448B   | 33FF                  | xor edi,edi                                  | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D448D   | 803D A6DE3A00 00      | cmp byte ptr ds:,0                   |
001D4494   | 6A FF                   | push FFFFFFFF                              |
001D4496   | 74 6A                   | je editplus.1D4502                           |
001D4498   | 6A 24                   | push 24                                    |
001D449A   | 68 5A550000             | push 555A                                    |
001D449F   | E8 9B120F00             | call <editplus.sub_2C573F>                   |
001D44A4   | 83F8 06               | cmp eax,6                                    | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44A7   | 75 65                   | jne editplus.1D450E                        | 这里▲
001D44A9   | A1 60E73B00             | mov eax,dword ptr ds:                | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44AE   | 85C0                  | test eax,eax                                 | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44B0   | 75 34                   | jne editplus.1D44E6                        |
001D44B2   | EB 35                   | jmp editplus.1D44E9                        |
001D44B4   | 8B17                  | mov edx,dword ptr ds:                   | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", :"ableW"
001D44B6   | 83FE 07               | cmp esi,7                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44B9   | 8BCF                  | mov ecx,edi                                  | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44BB   | 0F9405 A6DE3A00         | sete byte ptr ds:                  |
001D44C2   | 33C0                  | xor eax,eax                                  | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44C4   | 3905 7CE73B00         | cmp dword ptr ds:,eax                | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44CA   | 0F94C0                  | sete al                                    |
001D44CD   | 50                      | push eax                                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44CE   | 53                      | push ebx                                     |
001D44CF   | FF92 84000000         | call dword ptr ds:                   |
001D44D5   | 8BF8                  | mov edi,eax                                  | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44D7   | 85FF                  | test edi,edi                                 | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44D9   | 74 B2                   | je editplus.1D448D                           |
001D44DB   | 8B45 14               | mov eax,dword ptr ss:                |
001D44DE   | 8987 E4000000         | mov dword ptr ds:,eax                | edi+E4:L"ot%\\system32\\windows.storage.dll,-21770", eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44E4   | EB 28                   | jmp editplus.1D450E                        | ▲
001D44E6   | 8B40 20               | mov eax,dword ptr ds:                | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", eax+20:L"pt\\01.学习HTML\\StudyJS.html"
001D44E9   | 6A 05                   | push 5                                       |
001D44EB   | 6A 00                   | push 0                                       |
001D44ED   | 6A 00                   | push 0                                       |
001D44EF   | 68 F80E3700             | push editplus.370EF8                         | 370EF8:L"https://go.microsoft.com/fwlink/p/?LinkId=2124703"
001D44F4   | 68 F08A3600             | push editplus.368AF0                         | 368AF0:L"open"
001D44F9   | 50                      | push eax                                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44FA   | FF15 1C863400         | call dword ptr ds:[<&ShellExecuteW>]         |
001D4500   | EB 0C                   | jmp editplus.1D450E                        | ▲
001D4502   | 6A 00                   | push 0                                       |
001D4504   | 68 FC5B0000             | push 5BFC                                    |
001D4509   | E8 31120F00             | call <editplus.sub_2C573F>                   |
001D450E   | C745 FC FFFFFFFF      | mov dword ptr ss:,FFFFFFFF            |
001D4515   | 83C8 FF               | or eax,FFFFFFFF                              | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4518   | 8B55 EC               | mov edx,dword ptr ss:                |
001D451B   | 83C2 F0               | add edx,FFFFFFF0                           | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D451E   | F0:0FC142 0C            | lock xadd dword ptr ds:,eax         | 取磁盘卷标
001D4523   | 48                      | dec eax                                    | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4524   | 85C0                  | test eax,eax                                 | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4526   | 7F 08                   | jg editplus.1D4530                           |
001D4528   | 8B0A                  | mov ecx,dword ptr ds:                   | :L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D452A   | 52                      | push edx                                     | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D452B   | 8B01                  | mov eax,dword ptr ds:                   | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D452D   | FF50 04               | call dword ptr ds:                  |
001D4530   | 8BC7                  | mov eax,edi                                  | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4532   | 8B4D F4               | mov ecx,dword ptr ss:               |
001D4535   | 64:890D 00000000      | mov dword ptr fs:,ecx                     | :"D蟪"
001D453C   | 59                      | pop ecx                                    |
001D453D   | 5F                      | pop edi                                    | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D453E   | 5E                      | pop esi                                    | esi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D453F   | 5B                      | pop ebx                                    |
001D4540   | 8B4D F0               | mov ecx,dword ptr ss:                |
001D4543   | 33CD                  | xor ecx,ebp                                  |
001D4545   | E8 B05A1300             | call editplus.309FFA                         | 好像这里是正常的流程!




我们前后调试几轮标注下,走过正确的流程,就会得到下面的结论:那就开始修改吧,修改之后,程序不弹框了,但浏览器还是没能打开预览网页效果!
接下来,让我们四处转转,看看INI配置文件,再随便点几个菜单

你就会发现,貌似这里可以设置,但选项是灰的。
就算用论坛的注册机激活版也是无济于事的!
那修改打开浏览器的设置在哪呢? 网上搜索下吧。



这样咱们发现的bug退出问题就解决了,至于有个选项是灰的,暂时不知咋去解决了。
因为实在不知原功能老版本里边长啥样?后会有期~~{:301_998:}
https://wwt.lanzouy.com/iIcJn0doc5za

冥界3大法王 发表于 2022-10-12 14:09

liduowu 发表于 2022-10-12 13:02
按crtl+b就直接打开网页了

@liduowu
你得先把Editplus的配置全部删除干净再测试
这样就像刚安装时的环境一样
然后那个bug就出场了。
不过上面那位朋友说的选中后拖动。。。我没有弄出来。

liduowu 发表于 2022-10-12 12:33

本帖最后由 liduowu 于 2022-10-12 12:34 编辑

冥界3大法王 发表于 2022-10-12 12:27
@liduowu
浏览器 =》 选项,菜单 长啥样?
嗯… 无法访问此页面网址为edge://settings/ 的页面可能存在问题,或者已永久移动到新的网址。
ERR_INVALID_URL

孤狼微博 发表于 2022-10-11 20:52

厉害,一直用5.3

18776551452 发表于 2022-10-11 21:02

厉害,一直用5.3

大方 发表于 2022-10-11 21:05

这可是老牌劲旅了,我一工作的时候就开始用,现在都快退休了,它在战斗啊

开心长寿果 发表于 2022-10-11 21:51

本帖最后由 开心长寿果 于 2022-10-11 21:53 编辑

可以分享下软件吗?谢谢

chishingchan 发表于 2022-10-11 22:20

还是 4.3 通用版好!

zwc123xyz 发表于 2022-10-11 22:22

法王厉害,学习了。

Takitooru 发表于 2022-10-11 23:28

其实不止Ctrl+B触发这个bug,你试试选中任意内容,然后按住鼠标左键拖动选中内容,也会触发这个Bug

冥界3大法王 发表于 2022-10-12 00:20

Takitooru 发表于 2022-10-11 23:28
其实不止Ctrl+B触发这个bug,你试试选中任意内容,然后按住鼠标左键拖动选中内容,也会触发这个Bug

删除全部配置,我咋没触发?

Takitooru 发表于 2022-10-12 00:24

冥界3大法王 发表于 2022-10-12 00:20
删除全部配置,我咋没触发?

是随便打开编辑一个文档之类,然后选中编辑内容,按住鼠标左键拖动选中内容
页: [1] 2 3 4 5
查看完整版本: EditPlus 5.6 build 4772 按下Ctrl+B浏览器预览bug的解决