Use jdprotect to protect your software and prevent programs from being tracked/reversed/decompiled/cracked

Source: Internet
Author: User

Author: Zhuang Xiaoli (liigo)

Date: 2011-4-8

Original: http://blog.csdn.net/liigo/archive/2011/04/08/6310677.aspx

Please indicate the source of conversion: http://blog.csdn.net/liigo

 

Jdprotect looks like the software was not updated for a long time a few years ago. This document does not recommend software, but introduces its usage. Liigo does not evaluate the quality and effect of the software, because I do not know much about it.

Jdprotect is essentially a shelling software, which is similar to the hardware dongle usage. It is said to be a software that combines the Dual Advantages of shelling and hardware dongle. The author introduced in this document:

The common shelling software is actually wearing a dress for the main program. There is no logical connection between this dress (that is, the shell) and the main program, run the shell first, and the shell completes tasks such as reverse tracking and restoration of the main program. After the task is completed, the shell jumps to the original main program entry. At this point, the shell loses its value, and because the shell is not dependent on the main program (that is, the main program will not access the shell again, in fact the main program does not know the existence of the shell), so you can perform shell removal, make the shell-removing program still available. <Br/> the idea of the jdprotect software dog is based on the understanding of the vulnerabilities of the shell software, and the concept that the shell is the dog and the dog is the shell is proposed, through technical means, the shell and the main program are organically combined to make the shell an essential and flesh-and-blood part of the main program. When the program runs after shelling, the shell is still run first, the shell completes the anti-tracking and restoration tasks of the main program. After the task is completed, it jumps to the original main program portal. However, the shell cannot be discarded, because the main program can access the shell at any time by accessing the resources in the dog, check the authenticity of the shell. If the shell removal operation is performed, it is equivalent to removing the dog, so that the shell-removing program becomes an incomplete program and cannot be run.

The jdprotect software provides users with. lib file, necessary header files (C/C ++. h, compiled. INC), and a shelling encryption and dog processing master program (hereinafter referred to as the dog processing program ). The procedure is to call it in your own software. the interface functions in lib (perform necessary check/check). compile and generate the EXE and submit it to the dongle program to generate a new exe. Then, the new EXE can be released. When adding a dog, you can specify the user ID, user info, and four passwords (DWORD). You can also define a custom algorithm compiled using pseudo-assembly (with many restrictions ), the user operates the above data and algorithms through interface functions.

Interface functions in. h:

Extern "C" DWORD _ stdcall gethardid (DWORD inparam); <br/> extern "C" DWORD _ stdcall getuserid (); <br/> extern "C" Void _ stdcall getuserinfo (lptstr lpbuff); <br/> extern "C" DWORD _ stdcall getseedcode (DWORD inparam ); <br/> extern "C" DWORD _ stdcall getmycode (DWORD inparam); <br/> extern "C" DWORD _ stdcall getsecretcode (INT num );

Its. the LIB file is an empty shell imported into the database file, and does not have any substantive function code. It may just act as a placeholder, with substantial shell encryption to protect the code, it was added when the dog program was later added to process the exe. The author provides the header file of the assembly language. INC and C/C ++. h, with examples of calling VC ++ 6.0, it indicates that jdprotect is mainly used for compilation and C/C ++ user services. The author also expects that Delphi, C ++ builder, and VB can also use jdprotect, and hopes that users can assist in compiling routines. I personally doubt this because. Lib is not a technology widely supported by multiple programming languages (DLL is ).

In easy language, you can call. Lib. Libraries that can be called by VC ++ are also easy to use. In easy language. lib, you only need to fill in the function declaration accurately. In addition to entering the basic return value type, parameter type, and Lib file, the most important thing is to fill in the function in. the name of the symbol in Lib. How do I know the symbol name? One method is to infer from experience that the symbol name of the stdcall function func should be _ FUNC @ n, where N is the number of bytes (usually a multiple of 4) in the function parameter stack ), for example, the symbol of the above gethardid function is _ gethardid @ 4; the symbol name of the cdecl function func should be _ FUNC. Run dumpbin/All tlzj. Lib> tlzj.txt to output tlzj.libinformation to the tlzj.txt text file. The result is roughly as follows:

With the specific symbol name, it is easy to declare and call the function in Lib in easy language, just like to declare and call the DLL (enter the symbol name in the "corresponding command name in the library" column):

Now you know why I use the word "fill? In easy language, you can declare and define functions (such as) in the form of forms ). By default, stdcall is used to call functions in lib/DLL. If the called function is cdecl, you can add the character @ at the top of the "corresponding command name in the library" column to inform the easy language to call the function using cdecl call conventions. In addition, for C ++ functions that are not exported using "extern" C "in. Lib, the symbol names are usually weird, such as"? Vc_time2 @ yahxz "(see name mangling in C ++). You can also call it in easy language-as long as you enter the correct symbol name. The support for. lib and. dll calls in easy language is relatively complete.

  To simplify the use, I (liigo) developed the easy-to-use language call module "tianle software dog (jdprotect) module for jdprotect. EC ", easy-to-use common users can easily call the development interface provided by jdprotect without any technical premise.The following is a simple usage document written by liigo for this module and its routines:

'Usage steps: <br/> '1. generate an EXE using static compilation. (This program does not support non-static compilation or debugging in IDE.) <br/>' 2. Run jdprotect.exe, select the generated EXE and enter the parameters, click the "add dog" button <br/> '3. The EXE after the add dog operation can run normally. <br/> '4. The file name and EXE file name are automatically generated after the dog is added. same, Suffix. dog configuration file, double-click it to view or modify the dog parameters <br/> 'module and routines by: liigo, http://blog.csdn.net/liigo,QQ:175199125 <br/>

Download:Jdprotect_0.90e, including easy language development modules and their source code and routines-- Because of the easy-to-use language content, I (liigo) changed the version number to 0.90e without authorization (the original version number is 0.90b). I am sorry to the author here.

Thank you for watching the full text.

 

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.