手动治愈IDR打开 HelpAndManual8 access violation(访问冲突)
本帖最后由 冥界3大法王 于 2022-8-15 15:48 编辑三天前开始研究 HelpAndManual 8.4.4 Build 5960
Help+Manual v8, Floating License: $1198
研究了三天,终于整明白了。。。
因为程序是Delphi编写的,所以得派遣IDR完成最后的收尾工程了。
但是直接打开它时,就会:
出来个这 (翻译一下就是(访问冲突))
然而我们若是用x32dbg来加载IDR再去运行,则可以完成最终对Delphi程序的解析。。。(由此通过事实论证,我们得出一个道理:有 暗桩!)
但是!如果再去保存 IDR的数据结果时就会出现超出内存,溢出的错误了。
字符串搜索定位下
0066FC4F| 55 | push ebp ==>这里是代码的头部
0066FC50| 8BEC | mov ebp,esp |
0066FC52| 83C4 A8 | add esp,FFFFFFA8 |
0066FC55| B8 FC976D00 | mov eax,idr.6D97FC |
0066FC5A| 53 | push ebx |
0066FC5B| 56 | push esi |
0066FC5C| 57 | push edi |
0066FC5D| E8 825CFFFF | call <idr.sub_6658E4> |
0066FC62| FF75 08 | push dword ptr ss: |
0066FC65| E8 4CFFFFFF | call <idr.sub_66FBB6> |
0066FC6A| 59 | pop ecx |
0066FC6B| 25 FF000000 | and eax,FF |
0066FC70| 83F8 03 | cmp eax,3 |
0066FC73| 7C 05 | jl idr.66FC7A |
0066FC75| 83F8 0F | cmp eax,F |
0066FC78| 7E 10 | jle idr.66FC8A |
0066FC7A| 33C0 | xor eax,eax |
0066FC7C| 8B55 B0 | mov edx,dword ptr ss: |
0066FC7F| 6467:8916 0000 | mov dword ptr fs:,edx |
0066FC85| E9 B0030000 | jmp idr.67003A |
0066FC8A| 8B34C5 D4966D00 | mov esi,dword ptr ds: |
0066FC91| 83C0 FD | add eax,FFFFFFFD |
0066FC94| 83F8 0B | cmp eax,B | B:'\v'
0066FC97| 0F87 C5020000 | ja idr.66FF62 |
0066FC9D| FF2485 A4FC6600 | jmp dword ptr ds: |
0066FCA4| D4 FC | aam FC |
0066FCA6| 66:0010 | add byte ptr ds:,dl |
0066FCA9| FD | std |
0066FCAA| 66:004CFD 66 | add byte ptr ss:,cl |
0066FCAF| 0088 FD6600C4 | add byte ptr ds:,cl |
0066FCB5| FD | std |
0066FCB6| 66:0000 | add byte ptr ds:,al |
0066FCB9| FE | ??? |
0066FCBA| 66:003CFE | add byte ptr ds:,bh |
0066FCBE| 66:0062 FF | add byte ptr ds:,ah |
0066FCC2| 66:0078 FE | add byte ptr ds:,bh |
0066FCC6| 66:00B4FE 6600F0FE| add byte ptr ds: |
0066FCCE| 66:0029 | add byte ptr ds:,ch |
0066FCD1| FF66 00 | jmp dword ptr ds: | :sub_401000
0066FCD4| 66:C745 C0 0800 | mov word ptr ss:,8 |
0066FCDA| BA 5CA16D00 | mov edx,idr.6DA15C | 6DA15C:"EDivByZero"
0066FCDF| 8D45 FC | lea eax,dword ptr ss: | :&"剂c"
0066FCE2| E8 DD370000 | call <idr.sub_6734C4> |
0066FCE7| FF45 CC | inc dword ptr ss: |
0066FCEA| 8B08 | mov ecx,dword ptr ds: |
0066FCEC| B2 01 | mov dl,1 |
0066FCEE| A1 68C46400 | mov eax,dword ptr ds: | 0064C468:"茨d"
0066FCF3| E8 24250000 | call <idr.sub_67221C> |
0066FCF8| 8945 A8 | mov dword ptr ss:,eax |
0066FCFB| FF4D CC | dec dword ptr ss: |
0066FCFE| 8D45 FC | lea eax,dword ptr ss: | :&"剂c"
0066FD01| BA 02000000 | mov edx,2 |
0066FD06| E8 A5390000 | call <idr.sub_6736B0> |
0066FD0B| E9 72020000 | jmp idr.66FF82 |
0066FD10| 66:C745 C0 1400 | mov word ptr ss:,14 |
0066FD16| BA 67A16D00 | mov edx,idr.6DA167 | 6DA167:"ERangeError"
0066FD1B| 8D45 F8 | lea eax,dword ptr ss: |
0066FD1E| E8 A1370000 | call <idr.sub_6734C4> |
0066FD23| FF45 CC | inc dword ptr ss: |
0066FD26| 8B08 | mov ecx,dword ptr ds: |
0066FD28| B2 01 | mov dl,1 |
0066FD2A| A1 C0C46400 | mov eax,dword ptr ds: | 0064C4C0:&"\vERangeErrord興"
0066FD2F| E8 CC10EDFF | call <idr.sub_540E00> |
0066FD34| 8945 A8 | mov dword ptr ss:,eax |
0066FD37| FF4D CC | dec dword ptr ss: |
0066FD3A| 8D45 F8 | lea eax,dword ptr ss: |
0066FD3D| BA 02000000 | mov edx,2 |
0066FD42| E8 69390000 | call <idr.sub_6736B0> |
0066FD47| E9 36020000 | jmp idr.66FF82 |
0066FD4C| 66:C745 C0 2000 | mov word ptr ss:,20 | 20:' '
0066FD52| BA 73A16D00 | mov edx,idr.6DA173 | 6DA173:"EIntOverflow"
0066FD57| 8D45 F4 | lea eax,dword ptr ss: |
0066FD5A| E8 65370000 | call <idr.sub_6734C4> |
0066FD5F| FF45 CC | inc dword ptr ss: |
0066FD62| 8B08 | mov ecx,dword ptr ds: |
0066FD64| B2 01 | mov dl,1 |
0066FD66| A1 18C56400 | mov eax,dword ptr ds: | 0064C518:&"\fEIntOverflow悙惱興"
0066FD6B| E8 58250000 | call <idr.sub_6722C8> |
0066FD70| 8945 A8 | mov dword ptr ss:,eax |
0066FD73| FF4D CC | dec dword ptr ss: |
0066FD76| 8D45 F4 | lea eax,dword ptr ss: |
0066FD79| BA 02000000 | mov edx,2 |
0066FD7E| E8 2D390000 | call <idr.sub_6736B0> |
0066FD83| E9 FA010000 | jmp idr.66FF82 |
0066FD88| 66:C745 C0 2C00 | mov word ptr ss:,2C | 2C:','
0066FD8E| BA 80A16D00 | mov edx,idr.6DA180 | 6DA180:&"1-0.dll"
0066FD93| 8D45 F0 | lea eax,dword ptr ss: |
0066FD96| E8 29370000 | call <idr.sub_6734C4> |
0066FD9B| FF45 CC | inc dword ptr ss: |
0066FD9E| 8B08 | mov ecx,dword ptr ds: |
0066FDA0| B2 01 | mov dl,1 |
0066FDA2| A1 CCC56400 | mov eax,dword ptr ds: | 0064C5CC:&"\nEInvalidOp恜芼"
0066FDA7| E8 C8250000 | call <idr.sub_672374> |
0066FDAC| 8945 A8 | mov dword ptr ss:,eax |
0066FDAF| FF4D CC | dec dword ptr ss: |
0066FDB2| 8D45 F0 | lea eax,dword ptr ss: |
0066FDB5| BA 02000000 | mov edx,2 |
0066FDBA| E8 F1380000 | call <idr.sub_6736B0> |
0066FDBF| E9 BE010000 | jmp idr.66FF82 |
0066FDC4| 66:C745 C0 3800 | mov word ptr ss:,38 | 38:'8'
0066FDCA| BA 8BA16D00 | mov edx,idr.6DA18B | 6DA18B:"EZeroDivide"
0066FDCF| 8D45 EC | lea eax,dword ptr ss: |
0066FDD2| E8 ED360000 | call <idr.sub_6734C4> |
0066FDD7| FF45 CC | inc dword ptr ss: |
0066FDDA| 8B08 | mov ecx,dword ptr ds: |
0066FDDC| B2 01 | mov dl,1 |
0066FDDE| A1 24C66400 | mov eax,dword ptr ds:[<sub_64C624>] | 0064C624:&"\vEZeroDivide绕d"
0066FDE3| E8 38260000 | call <idr.sub_672420> |
0066FDE8| 8945 A8 | mov dword ptr ss:,eax |
0066FDEB| FF4D CC | dec dword ptr ss: |
0066FDEE| 8D45 EC | lea eax,dword ptr ss: |
0066FDF1| BA 02000000 | mov edx,2 |
0066FDF6| E8 B5380000 | call <idr.sub_6736B0> |
0066FDFB| E9 82010000 | jmp idr.66FF82 |
0066FE00| 66:C745 C0 4400 | mov word ptr ss:,44 | 44:'D'
0066FE06| BA 97A16D00 | mov edx,idr.6DA197 | 6DA197:"EOverflow"
0066FE0B| 8D45 E8 | lea eax,dword ptr ss: |
0066FE0E| E8 B1360000 | call <idr.sub_6734C4> |
0066FE13| FF45 CC | inc dword ptr ss: |
0066FE16| 8B08 | mov ecx,dword ptr ds: |
0066FE18| B2 01 | mov dl,1 |
0066FE1A| A1 7CC66400 | mov eax,dword ptr ds:[<sub_64C67C>] | 0064C67C:&"\tEOverflow悙 莇"
0066FE1F| E8 A8260000 | call <idr.sub_6724CC> |
0066FE24| 8945 A8 | mov dword ptr ss:,eax |
0066FE27| FF4D CC | dec dword ptr ss: |
0066FE2A| 8D45 E8 | lea eax,dword ptr ss: |
0066FE2D| BA 02000000 | mov edx,2 |
0066FE32| E8 79380000 | call <idr.sub_6736B0> |
0066FE37| E9 46010000 | jmp idr.66FF82 |
0066FE3C| 66:C745 C0 5000 | mov word ptr ss:,50 | 50:'P'
0066FE42| BA A1A16D00 | mov edx,idr.6DA1A1 | 6DA1A1:"EUnderflow"
0066FE47| 8D45 E4 | lea eax,dword ptr ss: |
0066FE4A| E8 75360000 | call <idr.sub_6734C4> |
0066FE4F| FF45 CC | inc dword ptr ss: |
0066FE52| 8B08 | mov ecx,dword ptr ds: |
0066FE54| B2 01 | mov dl,1 |
0066FE56| A1 D4C66400 | mov eax,dword ptr ds:[<sub_64C6D4>] | 0064C6D4:&"\nEUnderflow恱莇"
0066FE5B| E8 18270000 | call <idr.sub_672578> |
0066FE60| 8945 A8 | mov dword ptr ss:,eax |
0066FE63| FF4D CC | dec dword ptr ss: |
0066FE66| 8D45 E4 | lea eax,dword ptr ss: |
0066FE69| BA 02000000 | mov edx,2 |
0066FE6E| E8 3D380000 | call <idr.sub_6736B0> |
0066FE73| E9 0A010000 | jmp idr.66FF82 |
0066FE78| 66:C745 C0 5C00 | mov word ptr ss:,5C | 5C:'\\'
0066FE7E| BA ACA16D00 | mov edx,idr.6DA1AC | ==>EAccessViolation==》我们当前在这里!
出头部引用点出来后,就会来到下面的位置处:
我们试着给上面的条件跳转改成强跳 !
0067129D| 74 29 | je idr.6712C8 ===>EB 29
然后,我们再去保存。。经过漫长的等待就会成功了。
eeyou 发表于 2022-8-17 15:20
大佬,你的功夫每次都是让我膜拜,你真是能折腾。有能力。
法王大爷是全网最能折腾的。 vipcrack 发表于 2022-8-17 21:03
法王大爷是全网最能折腾的。
二伯!我都成大爷了。。。{:301_1008:}
感觉快入土了。{:301_995:} 你怎么总是捣鼓Delphi,这玩意都过时了 非常好,厉害我的啊 我去,我的四五张配图到哪去了?
没存档,全完蛋了。。。{:301_1008:} 我没事也喜欢捣鼓点小玩意 最近为了编辑chm 这是找了不少工具了哇{:301_1002:} 必须支持,感谢分享 没有分析出问题的本质。 学习一下,感谢分享 谢谢大佬分享,正好想学习一下这方面的