程序的自删除
最近一直调试一个软件但是一直没有解决:这个软件是个调用bat实现自删除的!使了很多的办法可是都行不通!
希望大家提出意见!谢谢!!
软件的地址:http://www.skycn.com/soft/24459.html
期待听到你的建议!!谢谢!!
[ 本帖最后由 xinldy 于 2008-8-25 10:00 编辑 ] OD载入,搜索字串符找到 "$$a$$.bat" 来到段首,发现有二十二处调用,将这些CALL上面的条件跳转改掉既可 不知道是我的电脑有问题还是什么原因,我来到了$$a$$.bat段首处可是没有发现有什么跳转!
004BAE7C/$55 push ebp
004BAE7D|.8BEC mov ebp, esp
004BAE7F|.81C4 BCFDFFFF add esp, -244
004BAE85|.33C0 xor eax, eax
004BAE87|.8985 C4FDFFFF mov dword ptr , eax
004BAE8D|.8985 C0FDFFFF mov dword ptr , eax
004BAE93|.8985 BCFDFFFF mov dword ptr , eax
004BAE99|.8985 D0FDFFFF mov dword ptr , eax
004BAE9F|.8985 CCFDFFFF mov dword ptr , eax
004BAEA5|.8985 C8FDFFFF mov dword ptr , eax
004BAEAB|.8985 D8FDFFFF mov dword ptr , eax
004BAEB1|.8985 D4FDFFFF mov dword ptr , eax
004BAEB7|.8945 FC mov dword ptr , eax
004BAEBA|.33C0 xor eax, eax
004BAEBC|.55 push ebp
004BAEBD|.68 E3B04B00 push 004BB0E3
004BAEC2|.64:FF30 push dword ptr fs:
004BAEC5|.64:8920 mov dword ptr fs:, esp
004BAEC8|.8D95 D4FDFFFF lea edx, dword ptr
004BAECE|.33C0 xor eax, eax
004BAED0|.E8 A784F4FF call 0040337C
004BAED5|.8B85 D4FDFFFF mov eax, dword ptr
004BAEDB|.8D95 D8FDFFFF lea edx, dword ptr
004BAEE1|.E8 72FEF4FF call 0040AD58
004BAEE6|.8B95 D8FDFFFF mov edx, dword ptr
004BAEEC|.8D45 FC lea eax, dword ptr
004BAEEF|.B9 F8B04B00 mov ecx, 004BB0F8 ;$$a$$.bat
004BAEF4|.E8 93A6F4FF call 0040558C
004BAEF9|.8B55 FC mov edx, dword ptr
004BAEFC|.8D85 30FEFFFF lea eax, dword ptr
004BAF02|.E8 1D88F4FF call 00403724
004BAF07|.8D85 30FEFFFF lea eax, dword ptr
004BAF0D|.E8 AE85F4FF call 004034C0
004BAF12|.E8 9D81F4FF call 004030B4
004BAF17|.BA 0CB14B00 mov edx, 004BB10C ;:try
004BAF1C|.8D85 30FEFFFF lea eax, dword ptr
004BAF22|.E8 FDAAF4FF call 00405A24
004BAF27|.E8 888EF4FF call 00403DB4
004BAF2C|.E8 8381F4FF call 004030B4
004BAF31|.68 1CB14B00 push 004BB11C ;ASCII "del """
004BAF36|.8D95 C8FDFFFF lea edx, dword ptr
004BAF3C|.33C0 xor eax, eax
004BAF3E|.E8 3984F4FF call 0040337C
004BAF43|.8B85 C8FDFFFF mov eax, dword ptr
004BAF49|.8D95 CCFDFFFF lea edx, dword ptr
004BAF4F|.E8 9CFEFFFF call 004BADF0
004BAF54|.FFB5 CCFDFFFF push dword ptr
004BAF5A|.68 2CB14B00 push 004BB12C
004BAF5F|.8D85 D0FDFFFF lea eax, dword ptr
004BAF65|.BA 03000000 mov edx, 3
004BAF6A|.E8 99A6F4FF call 00405608
004BAF6F|.8B95 D0FDFFFF mov edx, dword ptr
004BAF75|.8D85 30FEFFFF lea eax, dword ptr
004BAF7B|.E8 A4AAF4FF call 00405A24
004BAF80|.E8 2F8EF4FF call 00403DB4
004BAF85|.E8 2A81F4FF call 004030B4
004BAF8A|.68 38B14B00 push 004BB138 ;ASCII "if exist """
004BAF8F|.8D95 BCFDFFFF lea edx, dword ptr
004BAF95|.33C0 xor eax, eax
004BAF97|.E8 E083F4FF call 0040337C
004BAF9C|.8B85 BCFDFFFF mov eax, dword ptr
004BAFA2|.8D95 C0FDFFFF lea edx, dword ptr
004BAFA8|.E8 43FEFFFF call 004BADF0
004BAFAD|.FFB5 C0FDFFFF push dword ptr
004BAFB3|.68 2CB14B00 push 004BB12C
004BAFB8|.68 4CB14B00 push 004BB14C ;ASCII " goto try"
004BAFBD|.8D85 C4FDFFFF lea eax, dword ptr
004BAFC3|.BA 04000000 mov edx, 4
004BAFC8|.E8 3BA6F4FF call 00405608
004BAFCD|.8B95 C4FDFFFF mov edx, dword ptr
004BAFD3|.8D85 30FEFFFF lea eax, dword ptr
004BAFD9|.E8 46AAF4FF call 00405A24
004BAFDE|.E8 D18DF4FF call 00403DB4
004BAFE3|.E8 CC80F4FF call 004030B4
004BAFE8|.BA 60B14B00 mov edx, 004BB160 ;ASCII "del %0"
004BAFED|.8D85 30FEFFFF lea eax, dword ptr
004BAFF3|.E8 2CAAF4FF call 00405A24
004BAFF8|.E8 B78DF4FF call 00403DB4
004BAFFD|.E8 B280F4FF call 004030B4
004BB002|.BA 70B14B00 mov edx, 004BB170 ;ASCII "cls"
004BB007|.8D85 30FEFFFF lea eax, dword ptr
004BB00D|.E8 12AAF4FF call 00405A24
004BB012|.E8 9D8DF4FF call 00403DB4
004BB017|.E8 9880F4FF call 004030B4
004BB01C|.BA 7CB14B00 mov edx, 004BB17C ;ASCII "exit"
004BB021|.8D85 30FEFFFF lea eax, dword ptr
004BB027|.E8 F8A9F4FF call 00405A24
004BB02C|.E8 838DF4FF call 00403DB4
004BB031|.E8 7E80F4FF call 004030B4
004BB036|.8D85 30FEFFFF lea eax, dword ptr
004BB03C|.E8 6388F4FF call 004038A4
004BB041|.E8 6E80F4FF call 004030B4
004BB046|.8D85 DCFDFFFF lea eax, dword ptr
004BB04C|.33C9 xor ecx, ecx
004BB04E|.BA 44000000 mov edx, 44
004BB053|.E8 B489F4FF call 00403A0C
004BB058|.C785 08FEFFFF>mov dword ptr , 1
004BB062|.66:C785 0CFEF>mov word ptr , 0
004BB06B|.8D85 20FEFFFF lea eax, dword ptr
004BB071|.50 push eax
004BB072|.8D85 DCFDFFFF lea eax, dword ptr
004BB078|.50 push eax
004BB079|.6A 00 push 0
004BB07B|.6A 00 push 0
004BB07D|.6A 40 push 40
004BB07F|.6A 00 push 0
004BB081|.6A 00 push 0
004BB083|.6A 00 push 0
004BB085|.8B45 FC mov eax, dword ptr
004BB088|.E8 77A6F4FF call 00405704
004BB08D|.50 push eax ; |CommandLine
004BB08E|.6A 00 push 0 ; |ModuleFileName = NULL
004BB090|.E8 A7C9F4FF call <jmp.&kernel32.CreateProcessA> ; \CreateProcessA
004BB095|.85C0 test eax, eax
004BB097|.74 24 je short 004BB0BD
004BB099|.8B85 24FEFFFF mov eax, dword ptr
004BB09F|.50 push eax ; /hObject
004BB0A0|.E8 4FC9F4FF call <jmp.&kernel32.CloseHandle> ; \CloseHandle
004BB0A5|.8B85 20FEFFFF mov eax, dword ptr
004BB0AB|.50 push eax ; /hObject
004BB0AC|.E8 43C9F4FF call <jmp.&kernel32.CloseHandle> ; \CloseHandle
004BB0B1|.A1 74054D00 mov eax, dword ptr
004BB0B6|.8B00 mov eax, dword ptr
004BB0B8|.E8 B7ADFBFF call 00475E74
004BB0BD|>33C0 xor eax, eax
004BB0BF|.5A pop edx
004BB0C0|.59 pop ecx
004BB0C1|.59 pop ecx
004BB0C2|.64:8910 mov dword ptr fs:, edx
004BB0C5|.68 EAB04B00 push 004BB0EA
004BB0CA|>8D85 BCFDFFFF lea eax, dword ptr
004BB0D0|.BA 08000000 mov edx, 8
004BB0D5|.E8 BEA1F4FF call 00405298
004BB0DA|.8D45 FC lea eax, dword ptr
004BB0DD|.E8 92A1F4FF call 00405274
004BB0E2\.C3 retn
[ 本帖最后由 xinldy 于 2008-7-17 10:03 编辑 ] 分析下 就会看到调用地址了 功力不够,还得继续学习才行!! 鼠标选中 004BAE7C/$55 push ebp
可以看到下面显示本地调用来自 004BB25F, 004BB30E, 004BB36E, 004BB3EC, 004BB43A, 004BB46C, 004BB5F4, 004BB678, 004BB6A4, 004BB6F4, 004BB7C2, 004BB8E6, 004BB985, 004BB9DE, 004BBA54, 004BBA98, 004BBDFD, 004BBE1A, 004BBFBF, 004BC10B, 004BC257, 004BC3A7
这就是2楼说的22处调用
从004BB25F的调用再查上个调用来自 004BC419
004BC40C .44 69 45 2E 6>ASCII "DiE.exe",0
004BC414 E8 E3F8FFFF CALL AloudKin.004BBCFC
004BC419 E8 66EDFFFF CALL AloudKin.004BB184
004BC41E E8 ADEEFFFF CALL AloudKin.004BB2D0
004BC423 E8 08EFFFFF CALL AloudKin.004BB330
004BC428 E8 AFEFFFFF CALL AloudKin.004BB3DC
004BC42D E8 6EF0FFFF CALL AloudKin.004BB4A0
004BC432 E8 15F0FFFF CALL AloudKin.004BB44C
004BC437 E8 C4EFFFFF CALL AloudKin.004BB400
004BC43C E8 CBF2FFFF CALL AloudKin.004BB70C
004BC441 E8 22F2FFFF CALL AloudKin.004BB668
004BC446 E8 E5F3FFFF CALL AloudKin.004BB830
004BC44B E8 44F2FFFF CALL AloudKin.004BB694
004BC450 E8 8FF2FFFF CALL AloudKin.004BB6E4
004BC455 E8 FAF4FFFF CALL AloudKin.004BB954
004BC45A E8 4DF5FFFF CALL AloudKin.004BB9AC
004BC45F E8 A0F5FFFF CALL AloudKin.004BBA04
004BC464 E8 13F6FFFF CALL AloudKin.004BBA7C
004BC469 E8 1AEFFFFF CALL AloudKin.004BB388
004BC46E E8 09FDFFFF CALL AloudKin.004BC17C
004BC473 E8 B8FBFFFF CALL AloudKin.004BC030
004BC478 E8 67FAFFFF CALL AloudKin.004BBEE4
004BC47D E8 4AFEFFFF CALL AloudKin.004BC2CC
把那几个连续的CALL都nop掉 就可以去掉程序的自删除 问题已经解决,谢谢大家的指教!!!
我是通过不断向上走的办法找到关键位置的,谢谢苍茫提供的我不曾注意的方法!
[ 本帖最后由 xinldy 于 2008-7-18 15:31 编辑 ]
页:
[1]