冥界3大法王 发表于 2020-2-18 12:01

哪位大神没事做?研究过坐掉x32dbg/x64dbg中的|

本帖最后由 冥界3大法王 于 2020-2-18 12:13 编辑

当我们整行的复制x32dbg/x64dbg的代码时:
我们就会得到下面的代码,里边有个|
每次还得替换掉,再保存到我们的汇编笔记中
实在是太烦人了
能不能汇编掉呢?
00D7D730| 0F85 9B000000       | jne D7D7D1                            | 补丁9
00D7D736| FFD3                | call ebx                              |
00D7D738| 84C0                | test al,al                            |
00D7D73A| 0F84 91000000       | je D7D7D1                           | 补丁8(测试通过的
00D7D740| 33DB                | xor ebx,ebx                           |
00D7D742| 399E E4050000       | cmp dword ptr ds:,ebx      |
00D7D748| 0F84 83000000       | je D7D7D1                           | 补丁7
00D7D74E| 8D8D 63FDFFFF       | lea ecx,dword ptr ss:      |
00D7D754| E8 9719F6FF         | call <sub_CDF0F0>                     |
00D7D759| 8D8D 63FDFFFF       | lea ecx,dword ptr ss:      |
00D7D75F| C645 FC 01          | mov byte ptr ss:,0x1         |
00D7D763| E8 AC84FEFF         | call <sub_D65C14>                     | 补丁5(F7进入后,正是is_vip
00D7D768| 84C0                | test al,al                            |
00D7D76A| 75 57               | jne D7D7C3                            | 补丁6
00D7D76C| 8B8E 1C050000       | mov ecx,dword ptr ds:      |
00D7D772| 53                  | push ebx                              |
00D7D773| FF15 70B4EC00       | call dword ptr ds:[<&?SetCheck@CCheck |
00D7D779| 68 08020000         | push 0x208                            |
00D7D77E| 8D85 E8FDFFFF       | lea eax,dword ptr ss:      |
00D7D784| 53                  | push ebx                              |
00D7D785| 50                  | push eax                              |
00D7D786| E8 55391100         | call <sub_E910E0>                     |
00D7D78B| 83C4 0C             | add esp,0xC                           |
00D7D78E| 68 B85BF400         | push F45BB8                           | F45BB8:L"WnUserPage.exe"
00D7D793| E8 1C66FEFF         | call <sub_D63DB4>                     |
00D7D798| 8BC8                | mov ecx,eax                           |
00D7D79A| E8 BC8FFDFF         | call <sub_D5675B>                     |
00D7D79F| 50                  | push eax                              |
00D7D7A0| 8D85 E8FDFFFF       | lea eax,dword ptr ss:      |
00D7D7A6| 68 D85BF400         | push F45BD8                           | F45BD8:L"\"%s%s\" OpenVipTip"
00D7D7AB| 50                  | push eax                              |
00D7D7AC| E8 3F34F6FF         | call <sub_CE0BF0>                     |
00D7D7B1| 53                  | push ebx                              |
00D7D7B2| 53                  | push ebx                              |
00D7D7B3| 8D85 E8FDFFFF       | lea eax,dword ptr ss:      |
00D7D7B9| 53                  | push ebx                              |
00D7D7BA| 50                  | push eax                              |
00D7D7BB| E8 20C2FDFF         | call <sub_D599E0>                     |
00D7D7C0| 83C4 20             | add esp,0x20                        |
00D7D7C3| 8D8D 63FDFFFF       | lea ecx,dword ptr ss:      |
00D7D7C9| 885D FC             | mov byte ptr ss:,bl          |
00D7D7CC| E8 8F11F6FF         | call <sub_CDE960>                     |
00D7D7D1| 8BCE                | mov ecx,esi                           |
00D7D7D3| E8 A7030000         | call <sub_D7DB7F>                     | 这里也起决定作用
00D7D7D8| 8D8D 64FDFFFF       | lea ecx,dword ptr ss:      | :L"normal_ck_use_yy"
00D7D7DE| FF15 A8B3EC00       | call dword ptr ds:[<&??1CDuiString@Du |
00D7D7E4| E8 59F70000         | call <sub_D8CF42>                     |
00D7D7E9| C2 0400             | ret 0x4                               |

好的,游戏开始:
我打算使用2号x32dbg调试1号x32dbg{:301_997:}

我们的目标是:干掉剪贴板中复制多出来的 |
https://static.52pojie.cn/static/image/hrline/1.gif

主程序搜索下clip,果然没有


找到后,全F2 下断,等待战机。
到x32dbg中去复制几行代码吧

触发后来到这附近

继续向下,看看都有啥,不要忙着做啥,有了针对才有胜算。
555958F | A1| mov eax,dword ptr ds:[<?qt_clipboard@QGuiAppli |
555958F | 83E | sub esp,0x14                                 |
555958F | 85C | test eax,eax                                 |
555958F | 75| jne 0x5559594F                                 |
555958F | FF1 | call dword ptr ds:[<&?instance@QCoreApplicatio |
5559590 | 85C | test eax,eax                                 |
5559590 | 75| jne 0x55595928                                 |
5559590 | 68| push qt5gui.55844778                           | 55844778:"QGuiApplication: Must construct a QGuiApplication before accessing a QClipboard"
5559590 | 50| push eax                                       |
5559590 | 50| push eax                                       |
5559590 | 50| push eax                                       |
5559590 | 8D4 | lea ecx,dword ptr ss:                |
5559591 | FF1 | call dword ptr ds:[<&??0QMessageLogger@@QAE@PB |
5559591 | 50| push eax                                       |
5559591 | FF1 | call dword ptr ds:[<&?warning@QMessageLogger@@ |
5559591 | 83C | add esp,0x8                                    |
5559592 | 33C | xor eax,eax                                    |
5559592 | 83C | add esp,0x14                                 |
5559592 | C3| ret                                          |
5559592 | 6A| push 0x8                                       |
看到没? 因为x32dbg 是QT的程序,所以出现这些特征字符串在情理之中的。
然后 我们就知道了
555958F | A1| mov eax,dword ptr ds:[<?qt_clipboard@QGuiAppli |这个函数可以作为切入点;


006ADD23 <wnconf | E8 99060000               | call <sub_6AE3C1>                  | This is my 注释
006ADD28         | E9 8EFEFFFF               | jmp 6ADBBB                           | Hello 52pojie.cn
正常粘出来,上面这样,对吧?




加油,加油 !
看到没? | 这玩意 在寄存器中已经出来了 ~~
54EE164A      | 8BC6               | mov eax,esi                                              | 从这上面某处入手 找 |
54EE164C      | 5E               | pop esi                                                |
54EE164D      | C2 0400            | ret 0x4                                                |
54EE1650 <qt5co | 56               | push esi                                                 |
54EE1651      | 8BF1               | mov esi,ecx                                              |
54EE1653      | 8B0E               | mov ecx,dword ptr ds:                               |
54EE1655      | C706 58971255      | mov dword ptr ds:,<?shared_null@QArrayData@@2QBU1@B |
54EE165B      | 8B01               | mov eax,dword ptr ds:                               |
54EE165D      | 85C0               | test eax,eax                                             |
54EE165F      | 74 13            | je 54EE1674                                              |
54EE1661      | 83F8 FF            | cmp eax,0xFFFFFFFF                                       |
54EE1664      | 74 1B            | je 54EE1681                                              |

继续,继续~~

晕,原来这玩意 ,就是这东西 ~~

这样最后就修补好了。


冥界3大法王 发表于 2020-2-18 12:16

成功后复制出的代码:
010073B9      75 1F                           jne 0x10073DA                                    
010073BB      8B48 3C                           mov ecx,dword ptr ds:                     ecx:EntryPoint
010073BE      03C8                              add ecx,eax                                       ecx:EntryPoint
010073C0      8139 50450000                     cmp dword ptr ds:,0x4550                     ecx:EntryPoint
010073C6      75 12                           jne 0x10073DA                                    
010073C8      0FB741 18                         movzx eax,word ptr ds:                  
010073CC      3D 0B010000                     cmp eax,0x10B                                    
010073D1      74 1F                           je 0x10073F2                                       
010073D3      3D 0B020000                     cmp eax,0x20B                                    
010073D8      74 05                           je 0x10073DF                                       
010073DA      895D E4                           mov dword ptr ss:,ebx   
页: [1]
查看完整版本: 哪位大神没事做?研究过坐掉x32dbg/x64dbg中的|