飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

楼主: Nisy

[讨论] 回复:关于软件子程序或DLL文件的再加密

[复制链接]

该用户从未签到

发表于 2007-5-13 09:27:12 | 显示全部楼层
OK
sanx/:16
test..
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-14 19:39:35 | 显示全部楼层
感觉到是问题出在哪,毕竟代码不长,暂时没搞定,底子差呀,想听听理论(原理)
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-17 15:07:19 | 显示全部楼层
看来没人愿意去逆,放个源代码吧


  1. #include <windows.h>
  2. #include <stdio.h>
  3. #include "peb.h"

  4. #pragma comment(linker, "/subsystem:windows /entry:main")
  5. //#pragma comment(linker,"/FIXED:NO")
  6. #pragma comment(linker, "/SECTION:.text,REW" ) //设PE节:.text,可读可执行
  7. #pragma comment(linker, "/MERGE:.data=.text") //合并到.text
  8. #pragma comment(linker, "/MERGE:.rdata=.text")//合并到.text

  9. void anti_attach();

  10. BYTE isdebugger=0x94;

  11. void anti_attach()
  12. {
  13.         PPEB peb;
  14.         InitPeb(peb);

  15.         while(true)
  16.         {
  17.                 if (peb->BeingDebugged != isdebugger)
  18.                         TerminateProcess(GetCurrentProcess(),NULL);
  19.                 Sleep(10);
  20.         }
  21. }


  22. int main()
  23. {
  24.         PPEB peb;
  25.         InitPeb(peb);

  26.         peb->BeingDebugged = isdebugger;

  27.         CloseHandle(CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)anti_attach,NULL,NULL,NULL));
  28.         MessageBox(NULL,"CAN YOU ATTACH ME?","HMMM....",NULL);
  29.         TerminateProcess(GetCurrentProcess(),NULL);
  30.         return 0;
  31. }


复制代码
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-17 19:22:06 | 显示全部楼层
0X94是什么意思````
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-18 18:46:53 | 显示全部楼层
原帖由 fonge 于 2007-5-17 19:22 发表
0X94是什么意思````


换成其他试试,换成0试试,换成1试试,再禁用HIDEOD试试
多试试就知道了:lol: :lol:
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2007-5-19 20:19:10 | 显示全部楼层
原帖由 海风月影 于 2007-5-18 18:46 发表


换成其他试试,换成0试试,换成1试试,再禁用HIDEOD试试
多试试就知道了:lol: :lol:


感谢海风月影兄分享源码 /:09
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-26 10:03:13 | 显示全部楼层
学习一下。。。。。。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-26 10:04:21 | 显示全部楼层
原帖由 海风月影 于 2007-5-17 15:07 发表
看来没人愿意去逆,放个源代码吧


#include
#include
#include "peb.h"

#pragma comment(linker, "/subsystem:windows /entry:main")
//#pragma comment(linker,"/FIXED:NO")
#pragma comment(lin ...

PPEB是个WINDOWS预定义的结构体吗?额外建个线程去防护,不错。
PYG19周年生日快乐!

该用户从未签到

发表于 2007-5-27 14:12:07 | 显示全部楼层
不是预定义的,是自己写的


  1. typedef void (*PPEBLOCKROUTINE)(PVOID PebLock);

  2. typedef struct _UNICODE_STRING {
  3.         USHORT Length;
  4.         USHORT MaximumLength;
  5.         PWSTR Buffer;
  6. } UNICODE_STRING, *PUNICODE_STRING;

  7. typedef struct _RTL_DRIVE_LETTER_CURDIR {
  8.         USHORT Flags;
  9.         USHORT Length;
  10.         ULONG TimeStamp;
  11.         UNICODE_STRING DosPath;
  12. } RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;


  13. typedef struct _PEB_LDR_DATA
  14. {
  15.         ULONG Length;
  16.         BOOLEAN Initialized;
  17.         PVOID SsHandle;
  18.         LIST_ENTRY InLoadOrderModuleList;
  19.         LIST_ENTRY InMemoryOrderModuleList;
  20.         LIST_ENTRY InInitializationOrderModuleList;
  21. } PEB_LDR_DATA, *PPEB_LDR_DATA;

  22. typedef struct _LDR_MODULE {
  23.         LIST_ENTRY InLoadOrderModuleList;
  24.         LIST_ENTRY InMemoryOrderModuleList;
  25.         LIST_ENTRY InInitializationOrderModuleList;
  26.         PVOID BaseAddress;
  27.         PVOID EntryPoint;
  28.         ULONG SizeOfImage;
  29.         UNICODE_STRING FullDllName;
  30.         UNICODE_STRING BaseDllName;
  31.         ULONG Flags;
  32.         SHORT LoadCount;
  33.         SHORT TlsIndex;
  34.         LIST_ENTRY HashTableEntry;
  35.         ULONG TimeDateStamp;
  36. } LDR_MODULE, *PLDR_MODULE;

  37. typedef struct _RTL_USER_PROCESS_PARAMETERS {
  38.         ULONG MaximumLength;
  39.         ULONG Length;
  40.         ULONG Flags;
  41.         ULONG DebugFlags;
  42.         PVOID ConsoleHandle;
  43.         ULONG ConsoleFlags;
  44.         HANDLE StdInputHandle;
  45.         HANDLE StdOutputHandle;
  46.         HANDLE StdErrorHandle;
  47.         UNICODE_STRING CurrentDirectoryPath;
  48.         HANDLE CurrentDirectoryHandle;
  49.         UNICODE_STRING DllPath;
  50.         UNICODE_STRING ImagePathName;
  51.         UNICODE_STRING CommandLine;
  52.         PVOID Environment;
  53.         ULONG StartingPositionLeft;
  54.         ULONG StartingPositionTop;
  55.         ULONG Width;
  56.         ULONG Height;
  57.         ULONG CharWidth;
  58.         ULONG CharHeight;
  59.         ULONG ConsoleTextAttributes;
  60.         ULONG WindowFlags;
  61.         ULONG ShowWindowFlags;
  62.         UNICODE_STRING WindowTitle;
  63.         UNICODE_STRING DesktopName;
  64.         UNICODE_STRING ShellInfo;
  65.         UNICODE_STRING RuntimeData;
  66.         RTL_DRIVE_LETTER_CURDIR DLCurrentDirectory[0x20];
  67. } RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;

  68. typedef struct _PEB_FREE_BLOCK {
  69.         struct _PEB_FREE_BLOCK *Next;
  70.         ULONG Size;
  71. } PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;

  72. typedef struct _PEB {
  73.         BOOLEAN InheritedAddressSpace;
  74.         BOOLEAN ReadImageFileExecOptions;
  75.         BOOLEAN BeingDebugged;
  76.         BOOLEAN Spare;
  77.         HANDLE Mutant;
  78.         PVOID ImageBaseAddress;
  79.         PPEB_LDR_DATA LoaderData;                                                        
  80.         PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
  81.         PVOID SubSystemData;
  82.         PVOID ProcessHeap;
  83.         PVOID FastPebLock;
  84.         PPEBLOCKROUTINE FastPebLockRoutine;
  85.         PPEBLOCKROUTINE FastPebUnlockRoutine;
  86.         ULONG EnvironmentUpdateCount;
  87.         PVOID *KernelCallbackTable;
  88.         PVOID EventLogSection;
  89.         PVOID EventLog;
  90.         PPEB_FREE_BLOCK FreeList;
  91.         ULONG TlsExpansionCounter;
  92.         PVOID TlsBitmap;
  93.         ULONG TlsBitmapBits[0x2];
  94.         PVOID ReadOnlySharedMemoryBase;
  95.         PVOID ReadOnlySharedMemoryHeap;
  96.         PVOID *ReadOnlyStaticServerData;
  97.         PVOID AnsiCodePageData;
  98.         PVOID OemCodePageData;
  99.         PVOID UnicodeCaseTableData;
  100.         ULONG NumberOfProcessors;
  101.         ULONG NtGlobalFlag;
  102.         BYTE Spare2[0x4];
  103.         LARGE_INTEGER CriticalSectionTimeout;
  104.         ULONG HeapSegmentReserve;
  105.         ULONG HeapSegmentCommit;
  106.         ULONG HeapDeCommitTotalFreeThreshold;
  107.         ULONG HeapDeCommitFreeBlockThreshold;
  108.         ULONG NumberOfHeaps;
  109.         ULONG MaximumNumberOfHeaps;
  110.         PVOID **ProcessHeaps;
  111.         PVOID GdiSharedHandleTable;
  112.         PVOID ProcessStarterHelper;
  113.         PVOID GdiDCAttributeList;
  114.         PVOID LoaderLock;
  115.         ULONG OSMajorVersion;
  116.         ULONG OSMinorVersion;
  117.         ULONG OSBuildNumber;
  118.         ULONG OSPlatformId;
  119.         ULONG ImageSubSystem;
  120.         ULONG ImageSubSystemMajorVersion;
  121.         ULONG ImageSubSystemMinorVersion;
  122.         ULONG GdiHandleBuffer[0x22];
  123.         ULONG PostProcessInitRoutine;
  124.         ULONG TlsExpansionBitmap;
  125.         BYTE TlsExpansionBitmapBits[0x80];
  126.         ULONG SessionId;
  127. } PEB, *PPEB;
复制代码
PYG19周年生日快乐!

该用户从未签到

发表于 2007-9-30 23:00:07 | 显示全部楼层
看不懂,/:L 貌似我比较笨了
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表