能力值:
( LV9,RANK:3410 )
|
-
-
2 楼
可运行不
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
可以运行, 找到OEP后,脱出来的跟在OD中看到的不一样,
有一段输入表没被脱出来,我在OEP处停下,然后把正常的输入表用二进制COPY 过来粘贴到脱出来的地方,可是不能运行,修改后的连OD都打不开了
类似这种:
00C1DBBC - FF25 FCA4F800 JMP DWORD PTR DS:[<&kernel32.CreateMutex>; kernel32.CreateMutexA
00C1DBC2 - FF25 00A5F800 JMP DWORD PTR DS:[<&kernel32.CreateProce>; kernel32.CreateProcessA
00C1DBC8 FF25 04A5F800 JMP DWORD PTR DS:[F8A504]
00C1DBCE FF25 08A5F800 JMP DWORD PTR DS:[F8A508] ; new1000.00E203B4
00C1DBD4 FF25 0CA5F800 JMP DWORD PTR DS:[F8A50C] ; new1000.00E203CF
00C1DBDA FF25 10A5F800 JMP DWORD PTR DS:[F8A510] ; new1000.00E203DD
00C1DBE0 FF25 14A5F800 JMP DWORD PTR DS:[F8A514] ; new1000.00E203EB
00C1DBE6 FF25 18A5F800 JMP DWORD PTR DS:[F8A518] ; new1000.00E203FD
00C1DBEC FF25 1CA5F800 JMP DWORD PTR DS:[F8A51C] ; new1000.00E20417
00C1DBF2 FF25 20A5F800 JMP DWORD PTR DS:[F8A520] ; new1000.00E2042B
改成这种后,OD都打不开了(这是在原程序带狗运行时看到的)
00C1DBBC JMP DWORD PTR DS:[F8A4FC] ; kernel32.CreateMutexA
00C1DBC2 JMP DWORD PTR DS:[F8A500] ; kernel32.CreateProcessA
00C1DBC8 JMP DWORD PTR DS:[F8A504] ; 011F57F0
00C1DBCE JMP DWORD PTR DS:[F8A508] ; ntdll.RtlDeleteCriticalSection
00C1DBD4 JMP DWORD PTR DS:[F8A50C] ; kernel32.DeleteFileA
00C1DBDA JMP DWORD PTR DS:[F8A510] ; kernel32.DeleteFileW
00C1DBE0 JMP DWORD PTR DS:[F8A514] ; kernel32.DeviceIoControl
00C1DBE6 JMP DWORD PTR DS:[F8A518] ; ntdll.RtlEnterCriticalSection
00C1DBEC JMP DWORD PTR DS:[F8A51C] ; kernel32.EnumCalendarInfoA
00C1DBF2 JMP DWORD PTR DS:[F8A520] ; kernel32.ExitProcess
00C1DBF8 JMP DWORD PTR DS:[F8A524] ; kernel32.ExitThread
00C1DBFE JMP DWORD PTR DS:[F8A528] ; kernel32.FileTimeToDosDateTime
00C1DC04 JMP DWORD PTR DS:[F8A52C] ; kernel32.FileTimeToLocalFileTime
00C1DC0A JMP DWORD PTR DS:[F8A530] ; kernel32.FileTimeToSystemTime
00C1DC10 JMP DWORD PTR DS:[F8A534] ; kernel32.FindClose
00C1DC16 JMP DWORD PTR DS:[F8A538] ; kernel32.FindFirstFileA
00C1DC1C JMP DWORD PTR DS:[F8A53C] ; kernel32.FindNextFileA
00C1DC22 JMP DWORD PTR DS:[F8A540] ; kernel32.FindResourceA
00C1DC28 JMP DWORD PTR DS:[F8A544] ; kernel32.FlushFileBuffers
|
能力值:
( LV9,RANK:3410 )
|
-
-
4 楼
程序小的话放个链接看看
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
FLY老大,程序比较大,而且带狗,你有没有QQ啥的,我传给你看看
|
能力值:
( LV9,RANK:3410 )
|
-
-
6 楼
无狗不运行的就不会了
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
00C1DBBC JMP DWORD PTR DS:[F8A4FC] ; kernel32.CreateMutexA
00C1DBC2 JMP DWORD PTR DS:[F8A500] ; kernel32.CreateProcessA
00C1DBC8 JMP DWORD PTR DS:[F8A504] ; 011F57F0
00C1DBCE JMP DWORD PTR DS:[F8A508] ; ntdll.RtlDeleteCriticalSection
00C1DBD4 JMP DWORD PTR DS:[F8A50C] ; kernel32.DeleteFileA
00C1DBDA JMP DWORD PTR DS:[F8A510] ; kernel32.DeleteFileW
00C1DBE0 JMP DWORD PTR DS:[F8A514] ; kernel32.DeviceIoControl
00C1DBE6 JMP DWORD PTR DS:[F8A518] ; ntdll.RtlEnterCriticalSection
00C1DBEC JMP DWORD PTR DS:[F8A51C] ; kernel32.EnumCalendarInfoA
00C1DBF2 JMP DWORD PTR DS:[F8A520] ; kernel32.ExitProcess
00C1DBF8 JMP DWORD PTR DS:[F8A524] ; kernel32.ExitThread
00C1DBFE JMP DWORD PTR DS:[F8A528] ; kernel32.FileTimeToDosDateTime
00C1DC04 JMP DWORD PTR DS:[F8A52C] ; kernel32.FileTimeToLocalFileTime
00C1DC0A JMP DWORD PTR DS:[F8A530] ; kernel32.FileTimeToSystemTime
00C1DC10 JMP DWORD PTR DS:[F8A534] ; kernel32.FindClose
00C1DC16 JMP DWORD PTR DS:[F8A538] ; kernel32.FindFirstFileA
00C1DC1C JMP DWORD PTR DS:[F8A53C] ; kernel32.FindNextFileA
00C1DC22 JMP DWORD PTR DS:[F8A540] ; kernel32.FindResourceA
00C1DC28 JMP DWORD PTR DS:[F8A544] ; kernel32.FlushFileBuffers
:[F8A544] 里的值,好像是当程序在加载时,由windows根据程序的输入表,找到相应DLL的导出涵数地址后,写入的
你这样单纯的复制,因为没有写入到IAT,当windows加载时,:[F8A544] 这里面的值是不确定的
估计OD加载不了,和这个有关
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
晕了, 基础不好,估计高手看起来应该很简单
应该是
把IAT分成两块,放在不同的地方进行处理了
找找资料,谁知道的讲一声,非常感谢.
|
|
|