Comments on: ACAD/Medre.A 10000′s of AutoCAD files leaked in suspected industrial espionage http://www.welivesecurity.com/2012/06/21/acadmedre-10000s-of-autocad-files-leaked-in-suspected-industrial-espionage/ News, Views, and Insight from the ESET Security Community Mon, 03 Feb 2014 08:49:00 +0000 hourly 1 http://wordpress.org/?v=3.7 By: P.Voss http://www.welivesecurity.com/2012/06/21/acadmedre-10000s-of-autocad-files-leaked-in-suspected-industrial-espionage/#comment-4405 Tue, 10 Dec 2013 09:20:00 +0000 http://blog.eset.com/?p=13194#comment-4405 The Links to Fix and White papers a no longer Valid = 404

]]>
By: Steven Wells http://www.welivesecurity.com/2012/06/21/acadmedre-10000s-of-autocad-files-leaked-in-suspected-industrial-espionage/#comment-954 Sun, 08 Jul 2012 22:25:30 +0000 http://blog.eset.com/?p=13194#comment-954 I rise to a point of technical inaccuracy. AutoLISP is NOT a scripting language. It is a full, high-level programming language featuring decision branches, multiple-condition analysis, condition-based iteration, recursion, and much more.
I have written AutoLISP programs to draw microchip bond-layout prototypes based on dialog and user-driven inputs, analyze ball-grid arrays for path length and chip area use, uniformly resize and reorient interactively selected textual information on county property plats, lay out 3D rebar arrangements for concrete construction, retrieve purchase data to update and redraw booths for tradeshow floor plans, and other highly sophisticated programs.
You can use AutoLISP to implement script-like actions, as you can do with other high-level languages. Perhaps the terseness of artfully written LISP can give an appearance of simplistic functionality.
For an example of what I have programmed in a tiny morsel of AutoLISP code: suppose that someone (or another program) provides an unsorted arbitrarily long list of mixed integers and reals (which can included zero or negatives) as an available set of values from which to make a selection. Someone (or another program) provides a number to potentially select from the list. If the number is in the list, my program must return it; if it is between adjacent values (as though the list was ordered) my program must return the next higher value. If the number is smaller/larger than the smallest/largest list value, my program must return the smallest/largest list value, respectively.
My program to do this contains 75 characters of code:
(defun i(m n)(apply 'min(mapcar '(lambda(x)(if(<= m x)x(apply 'max n)))n)))
That function definition contains only built-in functions. Flowchart it and see if you can convince me it's a script.

]]>