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

image.png


如图所示,工具栏第二排左下角的那个按钮
的bug,就算你打了官方提供的补丁包也是无济于事。。。。
所以,我们就来汇编修补下吧。
咱下载的是32位的,所以就用x32dbg来打开它吧。
话不多说,当这个弹框出现后,你可以采用多种方法定位到。
  • 搜索全部模块,所有字符串
  • 使用string插件
  • 利用暂停回溯法
  • 既然是弹框,那就用弹框类的api
  • 利用跟踪窗口
  • 利用句柄窗口
  • 最笨的方法,随便找个前置断点,按下热键Ctrl+F8 ,当Ctrl+B 走到关键点上就会触发
  • 下窗口类断点
  • 把光标移到该工具栏上,我们得知Browser字符串恐怕会调用,所以全下断,果然能断到开始的地方

开始曾经怀疑过有反调试:
EditPlus 5.6 build 4772 按下Ctrl+B浏览器预览bug的解决

image.png


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

image.png


你能搜索到好多。
你可以顺手给主模块下一个
EditPlus 5.6 build 4772 按下Ctrl+B浏览器预览bug的解决

image.png


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

image.png


不论咋样,你定位到了。
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:[0]                     | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", [00000000]:"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:[3A2AB8]                | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4339     | 33C5                    | xor eax,ebp                                  |
001D433B     | 8945 F0                 | mov dword ptr ss:[ebp-10],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:[ebp-C]                 |
001D4345     | 64:A3 00000000          | mov dword ptr fs:[0],eax                     | [00000000]:"D蟪", eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D434B     | 8B75 14                 | mov esi,dword ptr ss:[ebp+14]                |
001D434E     | 8B5D 08                 | mov ebx,dword ptr ss:[ebp+8]                 | [ebp+8]:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4351     | 8B34B5 40ED3B00         | mov esi,dword ptr ds:[esi*4+3BED40]          | 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:[ebp+C]                 |
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:[3C8F20]                |
001D4385     | 8379 F4 00              | cmp dword ptr ds:[ecx-C],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:[esi-1]                 | 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:[ebp+C]                    |
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:[ebp-14],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:[ecx]                   | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4408     | FF50 0C                 | call dword ptr ds:[eax+C]                    |
001D440B     | 83C0 10                 | add eax,10                                   | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D440E     | 8945 EC                 | mov dword ptr ss:[ebp-14],eax                |
001D4411     | C745 FC 00000000        | mov dword ptr ss:[ebp-4],0                   |
001D4418     | 33FF                    | xor edi,edi                                  | edi:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D441A     | 8B0D 64DE3A00           | mov ecx,dword ptr ds:[3ADE64]                | 003ADE64:&"渜6"
001D4420     | E8 211E1000             | call <editplus.sub_2D6246>                   |
001D4425     | 8945 E8                 | mov dword ptr ss:[ebp-18],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],eax                   |
001D4430     | 8B0D 64DE3A00           | mov ecx,dword ptr ds:[3ADE64]                | 003ADE64:&"渜6"
001D4436     | 8D45 E8                 | lea eax,dword ptr ss:[ebp-18]                |
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:[ebp-14]                |
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:[edi]                   | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", [edi]:"ableW"
001D444B     | FF52 64                 | call dword ptr ds:[edx+64]                   |
001D444E     | 8B55 EC                 | mov edx,dword ptr ss:[ebp-14]                |
001D4451     | B9 E80E3700             | mov ecx,editplus.370EE8                      | 370EE8:L"Browser"
001D4456     | 66:8B02                 | mov ax,word ptr ds:[edx]                     | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4459     | 66:3B01                 | cmp ax,word ptr ds:[ecx]                     |
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:[edx+2]                   |
001D4467     | 66:3B41 02              | cmp ax,word ptr ds:[ecx+2]                   |
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:[ebp-18],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:[3ADEA6],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:[3BE760]                | 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:[edi]                   | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html", [edi]:"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:[3ADEA6]                    |
001D44C2     | 33C0                    | xor eax,eax                                  | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D44C4     | 3905 7CE73B00           | cmp dword ptr ds:[3BE77C],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:[edx+84]                   |
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:[ebp+14]                |
001D44DE     | 8987 E4000000           | mov dword ptr ds:[edi+E4],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+20]                | 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:[ebp-4],FFFFFFFF            |
001D4515     | 83C8 FF                 | or eax,FFFFFFFF                              | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D4518     | 8B55 EC                 | mov edx,dword ptr ss:[ebp-14]                |
001D451B     | 83C2 F0                 | add edx,FFFFFFF0                             | edx:&L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D451E     | F0:0FC142 0C            | lock xadd dword ptr ds:[edx+C],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:[edx]                   | [edx]: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:[ecx]                   | eax:L"X:\\StudyJavaScript\\01.学习HTML\\StudyJS.html"
001D452D     | FF50 04                 | call dword ptr ds:[eax+4]                    |
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:[ebp-C]                 |
001D4535     | 64:890D 00000000        | mov dword ptr fs:[0],ecx                     | [00000000]:"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:[ebp-10]                |
001D4543     | 33CD                    | xor ecx,ebp                                  |
001D4545     | E8 B05A1300             | call editplus.309FFA                         | 好像这里是正常的流程!

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

image.png


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

image.png


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

image.png


这样咱们发现的bug退出问题就解决了,至于有个选项是灰的,暂时不知咋去解决了。
因为实在不知原功能老版本里边长啥样?后会有期~~EditPlus 5.6 build 4772 按下Ctrl+B浏览器预览bug的解决
https://wwt.lanzouy.com/iIcJn0doc5za
标签:
EditPlus 5.6 build 4772 按下Ctrl+B浏览器预览bug的解决

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com