* Possible StringData Ref from Data Obj ->"Program Files\Internet Explorer\IEXPLORE.EXE"从程序可以看出push 00437B04这条指令的作用是将IE程序的路径压栈,那么后面的Call 0041CBAE自然就是打开IE窗口的子程序了;
|
:0041C78E 68047B4300 push 00437B04 <-- 我们来到这里
:0041C793 8D542410 lea edx, dword ptr [esp+10]
:0041C797 8D442418 lea eax, dword ptr [esp+18]
:0041C79B 52 push edx
:0041C79C 50 push eax
* Reference To: MFC42.Ordinal:039C, Ord:039Ch
|
:0041C79D E80C040000 Call 0041CBAE
* Possible StringData Ref from Data Obj ->"http://www.chinauser.com/"指令mov esi, 00437B78将字符串“http://www.chinauser.com”的地址压栈,说明这里以下的程序段都是在为打开IE做准备,继续往上看,就在上面我们可以看到:
|
:0041C683 BE787B4300 mov esi, 00437B78
:0041C688 8D7C2418 lea edi, dword ptr [esp+18]
:0041C68C F3 repz
:0041C68D A5 movsd
:0041C68E 66A5 movsw
:0041C690 B93A000000 mov ecx, 0000003A
:0041C695 33C0 xor eax, eax
:0041C697 8D7C2432 lea edi, dword ptr [esp+32]
* Referenced by a CALL at Address:从这里我们可以知道始终没有跳转指令可以跳过这段程序,只是发现这段打开IE窗口的程序被0041B74A处的CALL所调用;
|:0041B74A
|
:0041C660 6AFF push FFFFFFFF
:0041C662 6871D74100 push 0041D771
:0041C667 64A100000000 mov eax, dword ptr fs:[00000000]
:0041C66D 50 push eax
:0041C66E 64892500000000 mov dword ptr fs:[00000000], esp
:0041C675 81EC10030000 sub esp, 00000310
:0041C67B 55 push ebp
:0041C67C 56 push esi
:0041C67D 57 push edi
:0041C67E B906000000 mov ecx, 00000006
* Referenced by a (U)nconditional or (C)onditional Jump at Address:8. 现在已经知道0041B74A处的CALL 0041C660跟打开IE窗口有很大关系,让我们从这里往上看,可以发现上面0041B712处的je 0041B756指令可以跳过CALL 0041C660;
|:0041B674(C)
|
:0041B70F F6C720 test bh, 20
:0041B712 7442 je 0041B756
:0041B714 8B4620 mov eax, dword ptr [esi+20]
* Reference To: USER32.KillTimer, Ord:0195h
|
:0041B717 8B3DA4E34100 mov edi, dword ptr [0041E3A4]
:0041B71D 6A4A push 0000004A
:0041B71F 50 push eax
:0041B720 FFD7 call edi
:0041B722 8B4E20 mov ecx, dword ptr [esi+20]
* Possible Reference to String Resource ID=00103: "Windows .犸??1%."
|
:0041B725 6A67 push 00000067
:0041B727 51 push ecx
:0041B728 FFD7 call edi
:0041B72A 51 push ecx
:0041B72B 8D566C lea edx, dword ptr [esi+6C]
:0041B72E 8BCC mov ecx, esp
:0041B730 89642424 mov dword ptr [esp+24], esp
:0041B734 52 push edx
:0041B735 C7466801000000 mov [esi+68], 00000001
* Reference To: MFC42.Ordinal:0217, Ord:0217h
|
:0041B73C E8E9130000 Call 0041CB2A
:0041B741 8BCE mov ecx, esi
:0041B743 E868FCFFFF call 0041B3B0
:0041B748 8BCE mov ecx, esi
:0041B74A E8110F0000 call 0041C660 <-- 我们来到这里
:0041B74F 8BCE mov ecx, esi
:0041B751 E82A000000 call 0041B780
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0041B6DB(U), :0041B70D(U), :0041B712(C)
|
:0041B756 8D4C240C lea ecx, dword ptr [esp+0C]
:0041B75A C7442418FFFFFFFF mov [esp+18], FFFFFFFF
* Reference To: MFC42.Ordinal:1741, Ord:1741h可以看出指令je 0041B70F将会使程序跳到打开IE的程序段,现在我们要使程序不跳到0041B70F去,一种办法是将je改成jne,另外一种办法是将je 0041B70F改成空指令nop。这里我们采用第2中方法,由于je 0041B70F的机器码是0F8495000000,所以我们用nop的机器码90添满0F8495000000,在HIEW中搜索85 C0 0F 84 95 00 00 00 8B 86(注意将刚才改坏的userdial.exe删掉,用原始的userdial.exe来修改^_^),然后将0F 84 95 00 00 00改成90 90 90 90 90 90,存盘退出后运行userdial.exe,你会发现按“连接”后程序没有打开IE窗口,哈。。。有戏唱了!不过虽然可恶的IE窗口没有打开,但是程序却不工作了,有问题???
|
:0041B669 E892140000 Call 0041CB00
:0041B66E 8B442424 mov eax, dword ptr [esp+24]
:0041B672 85C0 test eax, eax
:0041B674 0F8495000000 je 0041B70F <-- 我们来到这里
:0041B67A 8B860C010000 mov eax, dword ptr [esi+0000010C]
:0041B680 85C0 test eax, eax
:0041B682 7406 je 0041B68A
:0041B684 50 push eax
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:在将字符串“不能接通, 已经断开.”的地址压栈指令 push 00437A34的上面我们可以看到这段程被两个相互很近的地方0041B69C和0041B6B5所调用;
|:0041B69C(C), :0041B6B5(C)
|
:0041B6DD 8B5620 mov edx, dword ptr [esi+20]
* Possible Reference to String Resource ID=00103: "Windows .犸??1%."
|
:0041B6E0 6A67 push 00000067
:0041B6E2 52 push edx
* Reference To: USER32.KillTimer, Ord:0195h
|
:0041B6E3 FF15A4E34100 Call dword ptr [0041E3A4]
:0041B6E9 6A01 push 00000001
:0041B6EB 8BCE mov ecx, esi
:0041B6ED E8DED6FFFF call 00418DD0
* Possible StringData Ref from Data Obj ->"不能接通, 已经断开." (注意:在Win32Dasm中你看到的将是一堆乱码,不过并不影响我们)
|
:0041B6F2 68347A4300 push 00437A34 <-- 我们来到这里
:0041B6F7 68F4030000 push 000003F4
:0041B6FC 8BCE mov ecx, esi
* Reference To: MFC42.Ordinal:1741, Ord:1741h
|
:0041B6FE E8FD130000 Call 0041CB00
:0041B703 C7861801000000000000 mov dword ptr [esi+00000118], 00000000
:0041B70D EB47 jmp 0041B756
* Reference To: MFC42.Ordinal:1741, Ord:1741h哦!原来调用字符串“不能接通, 已经断开.”的地方就在刚才修改的程序的下面,0041B69C处的jne 0041B6DD和0041B6B5处的jge 0041B6DD都会让程序去调用显示字符串“不能接通, 已经断开.”。那么我们就不让程序去显示这个字符串:将jne 0041B6DD(对应的机器码753F)用空指令nop填充(对应的机器码为9090),将jge 0041B6DD(对应的机器码7D26)用空指令nop填充(对应的机器码为9090),然后存盘退出(要在刚才修改过的程序的基础上改噢);
|
:0041B669 E892140000 Call 0041CB00
:0041B66E 8B442424 mov eax, dword ptr [esp+24]
:0041B672 85C0 test eax, eax
:0041B674 0F8495000000 je 0041B70F
:0041B67A 8B860C010000 mov eax, dword ptr [esi+0000010C]
:0041B680 85C0 test eax, eax
:0041B682 7406 je 0041B68A
:0041B684 50 push eax
* Reference To: RASAPI32.RasHangUpA, Ord:0039h
|
:0041B685 E816180000 Call 0041CEA0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0041B682(C)
|
:0041B68A 8B8614010000 mov eax, dword ptr [esi+00000114]
:0041B690 C7860C01000000000000 mov dword ptr [esi+0000010C], 00000000
:0041B69A 85C0 test eax, eax
:0041B69C 753F jne 0041B6DD <-- 我们来到这里
:0041B69E 8B9618010000 mov edx, dword ptr [esi+00000118]
:0041B6A4 8B8E04010000 mov ecx, dword ptr [esi+00000104]
:0041B6AA 42 inc edx
:0041B6AB 8BC2 mov eax, edx
:0041B6AD 899618010000 mov dword ptr [esi+00000118], edx
:0041B6B3 3BC1 cmp eax, ecx
:0041B6B5 7D26 jge 0041B6DD
* Reference To: MFC42.Ordinal:0217, Ord:0217h现在我们试试用空指令nop将call 0041C660屏蔽掉,看看程序是否既能不弹出IE窗口又能正常工作(注意:使用原始的userdial.exe喔^_^,刚才修改的程序证明不太成功啦:-(,将call 0041C660的机器码E8110F0000改成9090909090);
|
:0041B73C E8E9130000 Call 0041CB2A
:0041B741 8BCE mov ecx, esi
:0041B743 E868FCFFFF call 0041B3B0
:0041B748 8BCE mov ecx, esi
:0041B74A E8110F0000 call 0041C660 <-- 这个CALL打开IE窗口
:0041B74F 8BCE mov ecx, esi
:0041B751 E82A000000 call 0041B780
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0041B6DB(U), :0041B70D(U), :0041B712(C)
|
:0041B756 8D4C240C lea ecx, dword ptr [esp+0C]
:0041B75A C7442418FFFFFFFF mov [esp+18], FFFFFFFF
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>