Public Scratchpad | Download, Select Code To D/L |
"Question:
Will people be able to decompile the executables I've made with PerlApp?
Answer:
PerlApp does provide some level of code obfuscation. Decompiling executables is not trivial, but it is possible."
perlapp | ActiveState Community Site
"pdk
Re: Decompile PerlApp
by Jenda Krynicky other posts by this author
Mar 6 2000 10:36AM messages near this date Decompile PerlApp | Generation HTML
> Does anyone know if a freestanding exe compiled with PerlApp
> can be decompiled?
>
> My hard drive died, and I thought I had saved everything--
> but a single module I wrote recently was (I know, I know)
> not copied, backed up, or printed.
>
> --
> Brian Lalonde brianl@....us
Not sure about PerlApp, but the Mercury Systems' perl2exe extracts
the modules into a temporary directory (under C:\temp or
C:\windows\temp) AFAIK. So you might run the script and try to look
up the module, I think you'll find it.
Jenda
== Jenda@....cz == http://Jenda.Krynicky.cz ==
The phenomenon of UFO doesn't say anything about
the presence of intelligence in space.
It just shows how rare it is here on the earth.
A.C.Clarke
"
Re: Decompile PerlApp :: ASPN Mail Archive :: pdk
"perl is an interpreted language.
in the process of conversions(perl2exe) there are some
patterns wich emerge ,and those can then be traced back.
if there is an perl2exe, there might be even an exe2perl.
so here's a search on google for exe2perl:
http://www.google.com/search?client=oper…
if this doesn't work try the following query searching for
a perl disassembler
http://www.google.com/search?client=oper…
Source(s):
www.google.com"
How do you get the source code of a program? PERL? - Yahoo! Answers
"I assume the exe was built with perlapp or perl2exe. It's not easy, you have to be really good with low-level development tools, but I would start by examining the memory while the program is running. (It has to "decrypt" the source code and then parse it)
Source(s):
P.S. There is no such thing as "PERL". The programming language is "Perl" and the executor is "perl"."
How do you get the source code of a program? PERL? - Yahoo! Answers
"On 6/24/06, Timothy Johnson <tjohnson@xxxxxxxxxxxxxxxxx> wrote:
It depends on which program was used to create the executable. I don't
know about Perl2Exe, but PerlApp encrypts the contents of the
executables to prevent tampering."
RE: Any PERL Decompiler / code ?
There was a promising-looking link to something called perlapp-decompile, but it seems to have vanished from the face of the earth. Not even the Wayback Machine has it.
"metasm - The METASM assembly manipulation suite
http://metasm.cr0.org Metasm is a cross-architecture assembler, disassembler, compiler, linker and debugger. It has some advanced features such as remote process manipulation, GCC-compatible preprocessor, automatic backtracking in the disassembler ("slicing"), C headers shrinking, linux/windows...
assembler, compiler, ruby, disassembler, debugger, decompiler, reverseengineering, Cparser"
Project Hosting on Google Code
"With PE Explorer You Can
* See what's inside an executable and what it does
* Change and customize the GUI elements of your Windows programs
* Track down what a program accesses and which DLLs are called
* Understand the way a program works, behaves, and interacts with others
* Verify the publisher and the integrity of the signed executable files
* Say good bye to digging through bloated help files just to hash out an API reference
* Open UPX-, Upack- and NsPack-compressed files seamlessly in PE Explorer, without long workarounds
* Special support for Delphi applications
One Program, Many Tools
* PE Header and Section Viewer/Editor
* Fast Resource Viewer and Advanced Resource Editor
* Exported/Imported API Function List Viewer
* Disassembler
* Dependency Scanner
* Digital Signature Viewer
* UPX, Upack and NsPack Static Unpackers"
PE Explorer: PE Editor, EXE File Editor Tool, DLL Reader, Disassembler, Delphi Resource EXE DLL Editing Software
Quick links:
Special characters quick reference
AutoPMSuperSearch.pl
grep, etc.
1/f Noise
Lo Fidelity Prototyping
Regex Stuff
Mostly Regex Stuff
Linguistics Stuff
Bioinformatics People (and Stuff)
Database Stuff
Spreadsheet Stuff
Reverse-Engineering Stuff
PerlMonks Stuff
Syntax Highlighting PerlMonks
Perl Documentation Stuff
Special Variables, Command-Line Options, and One-Liners
HTML Stuff
XML Stuff
Tutorial Stuff
Sorting
Topological Sort
Recommended Reading
"Oh no, not again" Stuff
HTML shown in my Free Nodelet
Free Note Taker, by Corion (see also: Re: Kill [me] (Free Note Taker))Nodes of interest
See also: planetscape's extra scratchpad
Character | Entity |
---|---|
& | & |
< | < |
> | > |
[ | [ |
] | ] |
™ | ™ |
® | ® |
© | © |
— | — |
❤ | ❤ |
☠ | ☠ |
See also:
Top of Pad
PM Super Search using PerlMonks::Mechanized (beta):
Top of Pad#!/usr/bin/perl # AutoPMSuperSearch.pl # Based on: Keeping Tutorials Current, by Limbic~Region [id://381389] +and [pad://bobf] # Usage: perl AutoPMSuperSearch.pl username password searchterm > f +ilename.ext use strict; use warnings; use constant USER => 15; use Data::Dumper; use Getopt::Std; use HTML::TableContentParser; use HTML::TokeParser::Simple; use PerlMonks::Mechanized; use URI; use WWW::Mechanize; use XML::Simple; my ($monk, $opt, $tut) = ( {}, {}, [] ); my %seen = (); Get_Args( $opt ); my $user = shift(@ARGV); my $passwd = shift(@ARGV); my $searchterm = shift (@ARGV); my $mech = WWW::Mechanize->new( autocheck => 1 ); Get_SearchResults(); my $pm_obj = PerlMonks::Mechanized->new($user,$passwd); print "Nodes to fetch:\n"; Print_Nodes(); print "\n"; Get_Nodes(); sub Get_Args { my $opt = shift; my $Usage = qq{Usage: $0 [options] -h : This help message. -b : Base URL - default: http://www.perlmonks.org/ } . "\n"; getopts( 'hb:' , $opt ) or die $Usage; die $Usage if $opt->{h}; $opt->{b} ||= 'http://www.perlmonks.org/'; } sub Monk { $mech->get( $opt->{b} . $_[0] . '&displaytype=xml' ); my $node = XML::Simple->new()->XMLin( $mech->content() ); return 1 if exists $node->{type}{id} && $node->{type}{id} == USER; return 0; } sub Process_Link { my ($link, $type) = @_; my $p = HTML::TokeParser::Simple->new( \$link->{data} ); my ($node, $label); while ( my $token = $p->get_token ) { last if $token->is_end_tag; if ( $token->is_start_tag( 'a' ) ) { $node = lc $token->return_attr( 'href' ); next; } $label = lc URI->new( '/index.pl?node=' . $token->as_is )->as_ +string if $token->is_text; } die "Something went terribly wrong" if ! $node || ! $label; if ( $type eq 'author' ) { $monk->{ $label } = undef; $monk->{ $node } = undef; } else { $node =~ s/\?node_id=//; push @{ $tut } , { id => $node, name => $label }; } } sub Process_Table { my $table = HTML::TableContentParser->new()->parse( $mech->content +() ); for my $row ( @{ $table->[0]{rows} } ) { Process_Link( $row->{cells}[1], 'author' ); Process_Link( $row->{cells}[2], 'tutorial' ); } } sub URL { return URI->new( $opt->{b} . 'index.pl?node=' . $_[0] . '&di +splaytype=print' )->as_string } # sub Get_SearchResults { $mech->get( URL( 'Super Search' ) ); $mech->field( 'BIT', $searchterm ); # Match text containing +... $mech->field( 'xa', '1' ); # Exclude Authors $mech->field( 'a', 'NodeReaper' ); # Author NodeReaper $mech->click_button( name => 'go' ); # Submit Form while ( $mech->content !~ /Finished searching database/ ) { Process_Table(); $mech->click_button( name => 'nx' ); } } sub GetThreadListAndAllNodeContents { my $nodeid = shift; my @node_ids = (); my $info = $pm_obj->node_info( $nodeid ); # $info is a reference foreach my $item ( @$info ) { # If this is not a root node, get the root and build the threa +d_list from there if (exists( $item->{root_node} )) { @node_ids = @{$pm_obj->thread_list( $item->{root_node} )}; + # de-reference - see [id://69927] } else { @node_ids = @{$pm_obj->thread_list($nodeid)}; } } foreach $nodeid (@node_ids) { unless ($seen{$nodeid}) { print ">>>>>\t" . $nodeid . ":\n"; my $data = $pm_obj->node_content( $nodeid ); # make a note we got this one so we don't get it again print Dumper( $data ); $seen{$nodeid} = 1; } } } sub Get_Nodes { GetThreadListAndAllNodeContents( $_->{id} ) for grep defined , @$t +ut; } sub Print_Nodes { print "\t$_->{id}\n" for grep defined , @$tut; }
Information decomposition of symbolic sequences
Long-range fractal correlations in literary corpora
Chechetkin, V.R. and A. Yu Turygin. “On the Spectral Criteria of Disorder in Non-Periodic Sequences: Application to Inflation Models, Symbolic Dynamics and DNA Sequences.” Journal of Physics A: Mathematical and General, Vol. 27, 4875-4898. 1994.
Voss, R.F. “Evolution of Long-Range Fractal Correlations and 1/f Noise in DNA Base Sequences.” Physical Review Letters, Vol. 68, No. 25, 3805-3808. 1992.
Voss, R.F. “Long-Range Fractal Correlations in DNA Introns and Exons.” Fractals. Vol. 2, No. 1 (1994) 1-6
Top of PadDent, Andy. "Paper Prototypes: Creating user interfaces on paper." Windows Tech Journal, June 1997, Vol. 6, No. 6, pp. 36-39.
Fowler, Susan. "Back to the Drawing Board." Magazine of International Design (New York: Design Publications), March/April 1996, Vol. 43, No. 2, pp. 82.
Rettig, Marc. "Prototyping for Tiny Fingers." Communications of the ACM, April 1994, Vol. 37, No. 4, pp. 21-27.
Top of PadThe Grand Master of the Illuminati speaks:
"'... Let me show you something. We do not work in general outlines; our plans are always specific, to the last detail.' He handed Drake a sheaf of papers. '... Read this carefully.'
Drake read what was to become the National Security Act of 1947. 'This abolishes the Constitution,' he said almost in ecstasy.
'Quite. And believe me, Mr. Drake, by '46 or '47, we will have Congress and the public ready to accept it. The American Empire is closer than you imagine.'"
... "'There will be opposition,' the Grand Master went on. 'In the 1960s and early 1970s especially. That's where your notion for a unified crime syndicate fits into our plan. To crush the opposition, we will need a Justice Department equivalent in many ways to Hitler's Gestapo. If your scheme works - if the Mafia can be drawn into a syndicate that is not entirely under Sicilian control, and the various other groups can be brought under the same umbrella - we will have a nationwide outlaw cartel. The public itself will then call for the kind of Justice Department that we need. By the mid-1960s, wiretapping of all sorts must be so common that the concept of privacy will be archaic.'"
(Shea, Robert, and Robert Anton Wilson. The Illuminatus! Trilogy. New York: Dell Publishing, 1975. p. 347, 348)
Top of PadRegex Stuff:
Mostly Regex Stuff:
Linguistics Stuff:
Bioinformatics People (and Stuff):
Database Stuff:
CF_SQL_TYPES, by Samuel Neff (Wed, 22 Oct 2003) offsite
CF | JDBC | DB2 | Informix | Oracle | MSSQL |
---|---|---|---|---|---|
CF_SQL_ARRAY | ARRAY | n.a. | n.a. | n.a. | n.a. |
CF_SQL_BIGINT | BIGINT | Bigint | int8, serial8 | n.a. | n.a. |
CF_SQL_BINARY | BINARY | Char for Bit Data | n.a. | n.a. | binary, timestamp |
CF_SQL_BIT | BIT | n.a. | boolean | n.a. | bit |
CF_SQL_BLOB | BLOB | Blob | blob | blob, bfile | n.a. |
CF_SQL_CHAR | CHAR | Char | char, nchar | char, nchar | char, nchar, uniqueidentifier |
CF_SQL_CLOB | CLOB | Clob | clob | clob, nclob | n.a. |
CF_SQL_DATE | DATE | Date | date, datetime year to day | n.a. | n.a. |
CF_SQL_DECIMAL | DECIMAL | Decimal | decimal, money | number | decimal, money, smallmoney |
CF_SQL_DISTINCT | DISTINCT | n.a. | n.a. | n.a. | n.a. |
CF_SQL_DOUBLE | DOUBLE | Double | n.a. | n.a. | n.a. |
CF_SQL_FLOAT | FLOAT | Float | float | number | float |
CF_SQL_IDSTAMP | CHAR | Char | char, nchar | char, nchar | char, nchar, uniqueidentifier |
CF_SQL_INTEGER | INTEGER | Integer | integer, serial | n.a. | int |
CF_SQL_LONGVARBINARY | LONGVARBINARY | Long Varchar for Bit Data | byte | long raw | image |
CF_SQL_LONGVARCHAR | LONGVARCHAR | Long Varchar | text | long | text, ntext |
CF_SQL_MONEY | DOUBLE | Double | n.a. | n.a. | n.a. |
CF_SQL_MONEY4 | DOUBLE | Double | n.a. | n.a. | n.a. |
CF_SQL_NULL | NULL | n.a. | n.a. | n.a. | n.a. |
CF_SQL_NUMERIC | NUMERIC | Numeric | n.a. | n.a. | numeric |
CF_SQL_OTHER | OTHER | n.a. | n.a. | n.a. | n.a. |
CF_SQL_REAL | REAL | Real | smallfloat | n.a. | real |
CF_SQL_REFCURSOR | REF | n.a. | n.a. | n.a. | n.a. |
CF_SQL_SMALLINT | SMALLINT | Smallint | smallint | n.a. | smallint |
CF_SQL_STRUCT | STRUCT | n.a. | n.a. | n.a. | n.a. |
CF_SQL_TIME | TIME | Time | datetime hour to second | n.a. | n.a. |
CF_SQL_TIMESTAMP | TIMESTAMP | Timestamp | datetime year to fraction(5), datetime year to second | date | datetime, smalldatetime |
CF_SQL_TINYINT | TINYINT | n.a. | n.a. | n.a. | tinyint |
CF_SQL_VARBINARY | VARBINARY | Rowid | n.a. | raw | varbinary |
CF_SQL_VARCHAR | VARCHAR | Varchar | varchar, nvarchar, lvarchar | varchar2, nvarchar2 | varchar, nvarchar, sysname |
See also: RE: cfqueryparam offsite
Spreadsheet Stuff:
Reverse-Engineering Stuff:
PerlMonks Stuff:
Janitors
- Editor Requests
- NodeReaper loose in the monastery
- janitors
- New site editors
- The editors' hall of mirrors and trickery
- Node 541
- Janitors' Guidelines
- What do Janitors do?
- Janitor Powers
- Janitor Signatures
- Reply Promoter
- Janitor Tools
pmdev
- The Everything Tour
- Pmdev Settings
- The True Catacombs of Perlmonks
- Monastery To Do (or) To Add List
- Learn to be a pmdev vigilante in 21 days!
- pmdev allowed xml fields
- How to apply patches to PM code
- pmdevil's cave map
- PmDev HowTo
- eric256's scratchpad - Development Changes Recently
- Inner Scriptorium
- ysth's pmdev TODO scratchpad
of interest to pmdevils, janitors, and pedagogues:
- jdporter
- jdporter's scratchpad
- jdporter's site scratchpad
- The Theory of Power
- ybiC
- Homenode Surfing
- Tutorial Stuff
- How to create internal links to Tutorial Sections
power users
XML Ticker stuff
- What XML generators are currently available on PerlMonks?
- request for another attribute of nodes in XML (node query, newest nodes, etc)
- PerlMonks::Mechanized (beta)
- parse the "Private Message XML Ticker" with index and substr
- parse the "Other Users XML Ticker" with index and substr
- New ticker login for PM XML clients
- Changes to the User Nodes ticker and introducing the NodeRep XML ticker
Free Nodelet
- What nodelets are available on PerlMonks?
- Free Nodelet freed
- Free Nodelet Hack: RAT collapse all
- Free Nodelet gets templating features
- Free nodelet templates make scratchpads _freer
- Free Nodelet Hack: 'Newest Nodes' Menubar
- Free Nodelet Hack: Hide/Display Nodelet Bar On Demand
- Free Nodelet Hack: Quick /msg to current node's author
- Nodelets on the left? (incl. Free Nodelet Hack)
- Free Nodelet hack: Syntax colouring
- Free Nodelet Hack: search internal code (pmdev only)
- Option to Toggle Perlmonks Markup for Free Nodelet
- Free Nodelet Hack: a graphical editor for composing nodes
- Regex replace your writeups: a free nodelet hack
- Free Nodelet Hack: Current Node Alternate Views and Info
- [RAT] moving "I've checked all of these" button
Super Search for "free nodelet hack"PM CSS
- CSS Resources
- Fun with PerlMonks and CSS
- PerlMonks CSS Examples
- Safe CSS Stylesheets
- CSS Changes/Additions
- On CSS and other machinations.
- Simplifying CSS
- Customizing PerlMonks CSS
- CSS support in FPC, and more
- New CSS feature
- Perlmonks CSS font size hack
- Suggestions for nodes to use to test CSS
- Nodelet CSS/Format changes
- User CSS Repository
Miscellaneous
- Cabal Matrix
- PerlMonks-Related External Sites
- PerlMonks modules 2.0
- use PerlMonksFacts;
- Single node displaymode request
- Working Node Tracker?
- Hello World!
- 'My Active Nodes' - idea
- Automate your PerlMonks activities
- Perlmonks Related Scripts
- WebFetch::PerlMonks
- Mass downloads.
- Home Node Image Rotator
- Public export of Perl Monks database
- Mass downloads.
Perl Documentation Stuff:
Special Variables, Command-Line Options, and One-Liners:
PM:
Offsite:
HTML Stuff:
XML Stuff:
Tutorial Stuff:
Sorting:
Topological Sort:
- Sort Algorithm (recursive?)
- Task scheduling using perl
- Dependency Inference
- How do I use Graph::Traversal?
- In search of an algorithm for loading cyclic graphs
- Order your autobundle by dependency
- The Lighter Side of Perl Culture (Part IV): Golf
- Problems with sorting
- Priority Sorting Challenge
- "Intelligent" array joining
- Parse C-like define statements
- Rolling a biased die
- where do you put your subs
- Sorting, given only comparisions
- Topological Sort in Perl
- Gantt Diagrams
Recommended Reading:
"Oh no, not again" Stuff:
HTML shown in my Free Nodelet:
<script language="javascript"><!-- function clear_all_radios(){ var lb = "\x5B"; var rb = "\x5D" var elements = document.getElementsByTagName('input'); var elnum; for(elnum=0;elnum<elements.length;elnum++){ var el = eval("elements"+lb+"elnum"+rb); if ( el.type == 'radio') { el.checked = false; } } } function check_all_upvotes(){ var lb = "\x5B"; var rb = "\x5D" var elements = document.getElementsByTagName('input'); var elnum; for(elnum=0;elnum<elements.length;elnum++){ var el = eval("elements"+lb+"elnum"+rb); var s = el.name; if (( el.type == 'radio') && ( s.substring(0,6) == 'vote__' ) +&& ( el.value == '1')) { el.checked = true; } } } //--></script> <center><u>Editors' Tools</u></center> <p> [id://28877|NTC] | [id://59481|NRE]<br> [link://?displaytype=display;node_id=`id`|Display] [link://?displaytype=editors;node_id=`id`|Edit] | [link://?node_tr=`id`;node_id=483915|Retitle] [link://?mnode=`id`;node_id=60309|Reparent]<br> [link://?snippet_id=`id`;node_id=481230|Unsnippet]<br> [id://499680] | [id://499693] </p> <p> [id://43037|Shortcuts] | [id://17558|Writeup Formatting]<br> [id://29281|PM HTML] | [id://477713]<br> [id://490460] | [id://237035] </p> <hr> <center><u>Free Nodelet Tools</u></center> <ul> <!--todo-<li>[id://`id`] </li>--> </ul> [href://?node_id=`id`;op=_freer;at=todo|Add] above, [href://?node_id=`id`;op=_freer;at=ad;in=pub|Public], [href://?node_id=`id`;op=_freer;at=ad;in=priv|Private], [href://?node_id=`id`;op=_freer;at=ad;in=priv;in=pub|Both].<br> [link://?append_to_personal_nodelet=%5Bid%3A%2F%2F`id`%5D;node_id=`id` +|Add to Personal Nodelet] <hr> <center><u>Cabal Inboxes</u></center> <br />[id://475485] | [link://?type=strangedoc;recipient=475485;node=message%20inbox|BoF Inb +ox] <br />[id://499790] | [link://?type=strangedoc;recipient=499790;node=message%20inbox|pedagog +ues inbox] [link://?sendto=pedagogues;node_id=48824|/msg pedagogues] <br />[id://59438] | [link://?type=strangedoc;recipient=59438;node=message%20inbox|janitors + inbox] <br />[id://106850] | [link://?type=strangedoc;recipient=106850;node=message%20inbox|pmdev i +nbox] <br />[id://56883] | [link://?type=strangedoc;recipient=56883;node=message%20inbox|PU inbox +] | [id://56087] <hr>
<!-- Free Note Taker, by [Corion] (see also: [id://505906]) --> <!-- Message [planetscape] --> <form method="post" action="?" enctype="application/x-www-form-urlenco +ded"> <input type="hidden" name="node_id" value="`user_id`"> <input type="hidden" name="op" value="message"> <input type="hidden" name="replyto" value="user"> <input type="hidden" name="sendto" value="`user_name`"> <label for="replytotext">Note to [`user_name`|myself]:</label> <input type="text" name="replytotext" size=40 maxlength=255> <input type="hidden" name="sexisgood" value="submit"> </form> <hr> <!-- Message [bobf] --> <form method="post" action="?" enctype="application/x-www-form-urlenco +ded"> <input type="hidden" name="node_id" value="`user_id`"> <input type="hidden" name="op" value="message"> <input type="hidden" name="replyto" value="user"> <input type="hidden" name="sendto" value="bobf"> <label for="replytotext">Note to [bobf]:</label> <input type="text" name="replytotext" size=40 maxlength=255> <input type="hidden" name="sexisgood" value="submit"> </form> <hr> <p> [id://48824|Message Inbox]<br> [FullPage Chat] | [http://nbpfaus.net/~pfau/cbhistory.cgi?site=PM|PM Recent CB Msgs]<br> [http://crazyinsomniac.perlmonk.org/perl/cblast35/cblast35.cgi|cb Last + 35] | [http://pthbb.org/cb/last.cgi|another CB last] </p> <p> [id://`id`|THIS NODE:] [id://`id`]<br> [link://?node_id=3333;parent=`id`|Comment on `id`]<br> </p> <p>[id://454610] | [id://511504]<br> [link://?node_id=6364&user=planetscape|planetscape's writeups] | [link://?node_id=6364&user=planetscape&showqa=on|planetscape's Q&A]<br +> </p> <p> [http://mojotoad.perlmonk.org/cbs/|cbstats] | [http://desert-island.dynodns.net/perl/pmplanet_na.html|PMPlanet]<br> [http://desert-island.dynodns.net/perl/pmplanet_google.html|PMPlanet: +Google Maps]<br> [http://tinymicros.com/pm/index.php?goto=MainPage|PMStats] | [http://desert-island.dynodns.net/perl/im2/karma.html|Karma] </p> <p> [http://perlmonk.org/|perlmonk.org] | [http://perlmonk.org/disk.html|total disk usage]<br> [id://117450|PM Snippets Index] | [http://hop.perl.plover.com/|HOP] </p> <p> [id://284175|Start Learning] | [id://352893|Perldoc POD QuickRef] | [id://408254|Perl documentation documentation] | [http://perldoc.perl.org/|perldoc.perl.org]<br> [id://401006] | [id://8070] </p> <hr> <p><a href="javascript:check_all_upvotes()">Check All Upvotes</a> | <a href="javascript:clear_all_radios()">Clear All Radios</a></p> <hr> <p>[link://?node_id=145597;displaytype=viewcode|fullpage testing node] +</p>
EOF