借休息时间 写了这篇文章。啊拉丁大盗脱文。
提示:这是一个木马(不是本人放的,不知道是哪个放到我群里面,借来练练手,调试过程中 一定要注意进程里面是否多了一个NTdhcp.exe
有这个进程立刻删之 该进程为木马)
软件名称: 啊拉丁大盗木马
软件大小:24.1KB
软件类别:木马
下载地址: http://free5.ys168.com/?lzmo123 名字为NTdhcp.rar 22.3KB
破解级别:(菜鸟级)
破解工具:PEiD,OD
破解过程:
一、用PEiD是UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo [Overlay]
1.用OD载入
00414580 > 60 PUSHAD \\来到这里。不管他F8往下走
00414581 BE 00F04000 MOV ESI,NTdhcp.0040F000
00414586 8DBE 0020FFFF LEA EDI,DWORD PTR DS:[ESI+FFFF2000]
0041458C 57 PUSH EDI
0041458D 83CD FF OR EBP,FFFFFFFF
00414590 EB 10 JMP SHORT NTdhcp.004145A2
00414592 90 NOP
00414593 90 NOP
00414594 90 NOP
004145A2 8B1E MOV EBX,DWORD PTR DS:[ESI]
004145A4 83EE FC SUB ESI,-4
004145A7 11DB ADC EBX,EBX
004145A9 ^ 72 ED JB SHORT NTdhcp.00414598 \\这里 往回跳了 那么就在下一行下断
004145AB B8 01000000 MOV EAX,1 \\这里F4 运行到这里
004145B0 01DB ADD EBX,EBX
004145B2 75 07 JNZ SHORT NTdhcp.004145BB
004145B4 8B1E MOV EBX,DWORD PTR DS:[ESI]
004145FC 41 INC ECX
004145FD 01DB ADD EBX,EBX
004145FF 75 07 JNZ SHORT NTdhcp.00414608
00414601 8B1E MOV EBX,DWORD PTR DS:[ESI]
00414603 83EE FC SUB ESI,-4
00414606 11DB ADC EBX,EBX
00414608 11C9 ADC ECX,ECX
0041460A 01DB ADD EBX,EBX
0041460C ^ 73 EF JNB SHORT NTdhcp.004145FD \\这里 往回跳了 那么就在下一行下断
0041460E 75 09 JNZ SHORT NTdhcp.00414619 \\这里F4 运行到这里
00414610 8B1E MOV EBX,DWORD PTR DS:[ESI]
00414625 8D142F LEA EDX,DWORD PTR DS:[EDI+EBP]
00414628 83FD FC CMP EBP,-4
0041462B 76 0F JBE SHORT NTdhcp.0041463C
0041462D 8A02 MOV AL,BYTE PTR DS:[EDX]
0041462F 42 INC EDX
00414630 8807 MOV BYTE PTR DS:[EDI],AL
00414632 47 INC EDI
00414633 49 DEC ECX
00414634 ^ 75 F7 JNZ SHORT NTdhcp.0041462D \\这里 往回跳
00414636 ^ E9 63FFFFFF JMP NTdhcp.0041459E \\这里 往回跳
0041463B 90 NOP \\这里的NOP是没有的意思所以不在这里下 下面一行下F4
0041463C 8B02 MOV EAX,DWORD PTR DS:[EDX] \\这里F4 运行到这里
00414641 8907 MOV DWORD PTR DS:[EDI],EAX
00414643 83C7 04 ADD EDI,4
00414646 83E9 04 SUB ECX,4
00414649 ^ 77 F1 JA SHORT NTdhcp.0041463C
0041464B 01CF ADD EDI,ECX
0041464D ^ E9 4CFFFFFF JMP NTdhcp.0041459E \\这里 往回跳了 那么就在下一行下断
00414652 5E POP ESI \\这里F4 运行到这里
0041465F 3C 01 CMP AL,1
00414661 ^ 77 F7 JA SHORT NTdhcp.0041465A \\这里 往回跳了 那么就在下一行下断
00414663 803F 01 CMP BYTE PTR DS:[EDI],1 \\这里F4 运行到这里
00414666 ^ 75 F2 JNZ SHORT NTdhcp.0041465A \\这里 往回跳了 那么就在下一行下断
00414668 8B07 MOV EAX,DWORD PTR DS:[EDI] \\这里F4 运行到这里
00414671 C1C0 10 ROL EAX,10
00414674 86C4 XCHG AH,AL
00414676 29F8 SUB EAX,EDI
00414678 80EB E8 SUB BL,0E8
0041467B 01F0 ADD EAX,ESI
0041467D 8907 MOV DWORD PTR DS:[EDI],EAX
0041467F 83C7 05 ADD EDI,5
00414682 89D8 MOV EAX,EBX
00414684 ^ E2 D9 LOOPD SHORT NTdhcp.0041465F \\这里 往回跳了 那么就在下一行下断
00414686 8DBE 00200100 LEA EDI,DWORD PTR DS:[ESI+12000] \\这里F4 运行到这里
下面这一段就很明显了 是出口表示咯,继续。。
004146BD 09C0 OR EAX,EAX
004146BF 74 07 JE SHORT NTdhcp.004146C8
004146C1 8903 MOV DWORD PTR DS:[EBX],EAX
004146C3 83C3 04 ADD EBX,4
004146C6 ^ EB E1 JMP SHORT NTdhcp.004146A9 \\这里 往回跳了 那么就在下一行下断
004146C8 FF96 44410100 CALL DWORD PTR DS:[ESI+14144] \\按常规这里应该下F4 但是这里有个CALL 所以就在下面一行下(个人理解)
004146CE 61 POPAD \\这里F4 运行到这里 这里也是壳的出口点(因为 他是POPAD)
004146CF - E9 3470FFFF JMP NTdhcp.0040B708 \\这里就不用下断了 比较一下 004146CF和0040B708 相差很大 那就是跨段了 0040B708就是程序的领空,也是该脱壳保存的地方
004146D4 EC IN AL,DX ; I/O 命令
004146D5 46 INC ESI
0040B708 55 PUSH EBP \\木马的领空 这里就可脱壳保存了,
0040B709 8BEC MOV EBP,ESP
0040B70B B9 04000000 MOV ECX,4
0040B710 6A 00 PUSH 0
0040B712 6A 00 PUSH 0
0040B714 49 DEC ECX
0040B715 ^ 75 F9 JNZ SHORT NTdhcp.0040B710
0040B717 51 PUSH ECX
0040B718 53 PUSH EBX
0040B719 56 PUSH ESI
0040B71A 57 PUSH EDI
0040B71B B8 60B64000 MOV EAX,NTdhcp.0040B660
0040B720 E8 A38EFFFF CALL NTdhcp.004045C8
0040B725 33C0 XOR EAX,EAX
0040B727 55 PUSH EBP
0040B728 68 76B94000 PUSH NTdhcp.0040B976
0040B72D 64:FF30 PUSH DWORD PTR FS:[EAX]
0040B730 64:8920 MOV DWORD PTR FS:[EAX],ESP
0040B733 90 NOP
0040B734 E8 1BB6FFFF CALL NTdhcp.00406D54
0040B739 E8 76B4FFFF CALL NTdhcp.00406BB4
0040B73E 84C0 TEST AL,AL
0040B740 74 05 JE SHORT NTdhcp.0040B747
0040B742 E8 91B4FFFF CALL NTdhcp.00406BD8
0040B747 8D45 EC LEA EAX,DWORD PTR SS:[EBP-14]
0040B74A E8 15B4FFFF CALL NTdhcp.00406B64
0040B74F 8B55 EC MOV EDX,DWORD PTR SS:[EBP-14]
0040B752 B8 98D74000 MOV EAX,NTdhcp.0040D798
0040B757 B9 90B94000 MOV ECX,NTdhcp.0040B990 ; ASCII "NTdhcp.exe" \\这里有个注释,不是隐藏的 那说明 程序入口点是对了
0040B75C E8 EB85FFFF CALL NTdhcp.00403D4C
0040B761 8D55 E8 LEA EDX,DWORD PTR SS:[EBP-18]
总结:本来想破了这个木马 但是时间上不允许,(经过我脱壳后的对比,发现UPX 0.89.6 - 1.02这个壳有
检测WINHEX 发现有就会关闭。所以脱壳后就不会了)
脱壳靠实践 大家可以多动手脱 手动多了 自然就学多了。
有很多地方需要大家指正!!!
好了 时间到了上班去了!
[课程]FART 脱壳王!加量不加价!FART作者讲授!