EasyLon加密机制分析

来源:互联网 发布:flex布局 仿软件 编辑:程序博客网 时间:2024/06/10 22:44

LnsOpcServer.exe

加密方式:序列号,

输入注册码后点Valid licence

限制:没有注册在主界面显示。

工具:Ollydbg, IDA4.5, PEEditorUltraEdit

分析:初步分析,发现限制都在他的一个serialShield.dll里,调用了serialShield.dll,里面有个antiDebugging函数需要注意。而且还使用了很多花指令。

系统调用SerialShield.dll是使用loadlibraryw,而不是loadlibrarya,要注意,有一个函数,GetFuncOfSerialDll

里面得到所有的seraildll里的函数,这是个突破口。可以通过这个函数得到地址。

getFuncOfSerialDll

0043C1B0 >/$  68 A89C4500   push LnsOpcSe.00459CA8                             ; /FileName =

"SerialShield.dll"

0043C1B5  |.  FF15 54714400 call dword ptr ds:[<&KERNEL32.LoadLibraryW>]       ; /LoadLibraryW

0043C1BB  |.  85C0          test eax,eax

0043C1BD  |.  A3 34A74500   mov dword ptr ds:[45A734],eax

0043C1C2  |.  0F84 53010000 je LnsOpcSe.0043C31B

0043C1C8  |.  56            push esi

0043C1C9  |.  8B35 C8704400 mov esi,dword ptr ds:[<&KERNEL32.GetProcAddress>]  ;  kernel32.GetProcAddress

0043C1CF  |.  68 989C4500   push LnsOpcSe.00459C98                             ; /ProcNameOrOrdinal =

"GetHardwardID"

0043C1D4  |.  50            push eax                                           ; |hModule

0043C1D5  |.  FFD6          call esi                                           ; /GetProcAddress

0043C1D7  |.  A3 30A74500   mov dword ptr ds:[45A730],eax

0043C1DC  |.  A1 34A74500   mov eax,dword ptr ds:[45A734]

0043C1E1  |.  68 909C4500   push LnsOpcSe.00459C90                             ; /ProcNameOrOrdinal =

分析校验的地方,来到这里,从这里看出,调用了SerialSh.SSUser,然后判断返回值是否等于4,发现这个函数在启动的时候也判断了这里,所以修改返回值等于4。另外还有一个ss_trialMode函数也很重要,不过暂时还没用到。估计是判断是否是试用版本的。

0040A72E  |> /8B55 D4       mov edx,dword ptr ss:[ebp-2C]

0040A731  |.  68 6CA14500   push LnsOpcSe.0045A16C

0040A736  |.  52            push edx

0040A737  |.  56            push esi

0040A738  |.  FF15 2CA74500 call dword ptr ds:[45A72C] ; SerialSh.SSUser  非常关键的函数

0040A73E  |.  83F8 04       cmp eax,4  <-------------很关键,必须等于4

0040A741  |. /75 0B         jnz short LnsOpcSe.0040A74E

0040A743  |. |66:C705 3AA74>mov word ptr ds:[45A73A],1

0040A74C  |. |EB 13         jmp short LnsOpcSe.0040A761

0040A74E  |> /66:833D 3AA74>cmp word ptr ds:[45A73A],1

0040A756  |.  75 09         jnz short LnsOpcSe.0040A761

0040A758  |.  66:C705 3AA74>mov word ptr ds:[45A73A],0

0040A761  |>  E8 CA1B0300   call LnsOpcSe.0043C330  <---------freelibrary

 

 

原创粉丝点击