home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Library / +HCU / 181-190.TXT < prev    next >
Text File  |  2000-05-25  |  56KB  |  1,462 lines

  1. ========================================================
  2. +HCU Maillist          Issue: 181             03/31/1998 
  3. --------------------------------------------------------
  4. Send Articles To:......................... *************
  5. Info, Help, Unsubscription, etc:....... ****************
  6. Web Repository.........................hcuml.home.ml.org
  7. ========================================================
  8.  
  9. CONTENTS:
  10.  
  11. #1  Subject: Re: OpenNT 2.1
  12.  
  13. #2  Subject: freespace crack
  14.  
  15. ARTICLES:
  16.  
  17. -----#1-------------------------------------------------
  18. Subject: Re: OpenNT 2.1
  19.  
  20. Hi,
  21.  
  22. first I have uses a sig but it was stipped off... However, it should 
  23. have read Muso. In the future will include it at the top of the 
  24. posting. Sorry for that.
  25.  
  26. Back to OpenNT 2.1:
  27. I will get this 'wisdec' tool and have a closer look at the install-
  28. script. Ghiribizzo stated the 'conventional' way... well, many ways 
  29. maybe 'conventional' but the only way to go, I think, is to make a 
  30. new key-generator for it. The license checking is splattered through 
  31. all the code not only the installation stuff... a valid license key 
  32. is of course the most sofisticated solution ;-))
  33.  
  34.  
  35. -----#2-------------------------------------------------
  36. Subject: freespace crack
  37.  
  38. Hello all,
  39.  
  40. remember freespace? somebody asked for a crack for it. Well, I 
  41. haven't got the time to crack. I made a little search on the web, 
  42. and there seem to be cracks for it. Anyway, I decided to buy the 
  43. program, and I upped it to a web site for you all to fetch - but I 
  44. will remove it in a few days.
  45.  
  46. the file is *****************************
  47.  
  48. after you downloaded it, rename it to fs10.exe
  49.  
  50. enjoy.
  51.  
  52. WAFNA
  53.  
  54. =====End of Issue 181===================================
  55.  
  56.  
  57.  
  58.  
  59. ========================================================
  60. +HCU Maillist          Issue: 182             04/01/1998 
  61. --------------------------------------------------------
  62. Send Articles To:......................... *************
  63. Info, Help, Unsubscription, etc:....... ****************
  64. Web Repository.........................hcuml.home.ml.org
  65. ========================================================
  66.  
  67. CONTENTS:
  68.  
  69. #1  Subject: OpenNT 2.1
  70.  
  71. ARTICLES:
  72.  
  73. -----#1-------------------------------------------------
  74. Subject: OpenNT 2.1
  75.  
  76. Hi everybody it's Muso again with the OpenNT stuff. As Ghiribizzo 
  77. suggested I did disassemble the install-shield script: Here is (as 
  78. Ghiribizzo stated) the relevant part:
  79.  
  80. 000079BF: 0128 IF (StrCompare (StrLocal[0004],"") != 00000000) THEN
  81. 000079DF: 00B4      NumLocal[0005] = MYDLL.verifyKey (StrLocal[0004])
  82. 000079F7: 006E      NumToStr (StrLocal[0002],NumLocal[0005])
  83. 000079FF: 00B4      NumVar[004A] = MYDLL.whatIsThis (StrLocal[0004])
  84. 00007A17: 0128      NumVar[0056] = NumLocal[0005] = 00000000
  85. 00007A29: 0128      NumVar[0057] = NumVar[004A] = 0000012D
  86. 00007A3B: 0128      NumVar[0058] = NumVar[004A] = 0000012E
  87. 00007A4D: 0126      NumVar[0059] = NumVar[0057] || NumVar[0058]
  88. 00007A58: 0128      NumVar[0057] = NumVar[004A] = 0000012F
  89. 00007A6A: 0126      NumVar[0058] = NumVar[0059] || NumVar[0057]
  90. 00007A75: 0128      NumVar[0057] = NumVar[004A] = 00000130
  91. 00007A87: 0126      NumVar[0059] = NumVar[0058] || NumVar[0057]
  92. 00007A9D: 0022      IF (NumVar[0056] && NumVar[0059] != 00000000) 
  93. THEN
  94. 00007AAB: 0021           NumLocal[0002] = 00000001
  95. 00007AB5: 0013           StrLocal[0008] = StrLocal[0004]
  96. 00007AD5: 0128           IF (MYDLL.isDemoKey (StrLocal[0008]) = 
  97. 00000001) THEN
  98. 00007AF5: 0021                NumVar[0041] = 00000001
  99. 00007AFF: 0021                NumVar[0042] = 00000001
  100. 00007B00: 0000           ENDIF
  101. 00007B11: 0000      ELSE
  102. 00007B1A: 0021           NumLocal[0002] = 00000000
  103. 00007B24: 0091           CtrlSetText (StrLocal[0001],000003E8,"")
  104. 00007B31: 0013           StrLocal[000A] = "Workstation/Server Key 
  105. Invalid"
  106. 00007B32: 0000      ENDIF
  107. 00007B60: 0000 ELSE
  108. 00007B69: 0021      NumLocal[0002] = 00000001
  109. 00007B6A: 0000 ENDIF
  110.  
  111. So what do they do here? They call there verifyKey() function with 
  112. the key-string (BTW: The compiler says that the signature needs a 
  113. second parameter but the function is only called with one). Than 
  114. there are some tweaking with the bits etc. and finally the decision 
  115. is made by the compare:
  116.  
  117. 00007A9D: 0022      IF (NumVar[0056] && NumVar[0059] != 00000000) 
  118. THEN
  119.  
  120. This one is interesting because NumVar[0056] holds the return value 
  121. of verifyKey() and verifyKey() is (was in OpenNT 2) returning 0 for a 
  122. valid key and 1 for an invalid one. But with a 0 this if never gets 
  123. true !??? Very strange.
  124.  
  125. Either verifyKey() is returning something different than 0/1 (I tried 
  126. it with a long and it's still 0) or the verifyKey() function can 
  127. recognize the 2.0 calling convention and if so returns a fake OK for 
  128. a 2.0 valid key if it's a 2.0 valid key. For a 2.1 valid key the 
  129. retur nvalue is something different (like a Pointer etc.)
  130.  
  131. What's very strange too is the call to NumToStr between the 
  132. verifyKey() and whatIsThis() call. For me it doesn't make sense 
  133. here...
  134.  
  135. Does anybody else has a suggestion how to 
  136.  
  137. =====End of Issue 182===================================
  138.  
  139.  
  140.  
  141.  
  142. ========================================================
  143. +HCU Maillist          Issue: 183             04/03/1998 
  144. --------------------------------------------------------
  145. Send Articles To:......................... *************
  146. Info, Help, Unsubscription, etc:....... ****************
  147. Web Repository.........................hcuml.home.ml.org
  148. ========================================================
  149.  
  150. CONTENTS:
  151.  
  152. #1  Subject: ICQ privacy question
  153.  
  154. ARTICLES:
  155.  
  156. -----#1-------------------------------------------------
  157. Subject: ICQ privacy question
  158.  
  159. Hello all,
  160.    In Issue 175, Zipper49 asked about ICQ security. I stumbled across
  161. this exploit tonight. Just food for thought.
  162.  
  163. **************************************************************
  164.  
  165.  
  166.  
  167. =====End of Issue 183===================================
  168.  
  169.  
  170.  
  171.  
  172. ========================================================
  173. +HCU Maillist          Issue: 184             04/04/1998 
  174. --------------------------------------------------------
  175. Send Articles To:......................... *************
  176. Info, Help, Unsubscription, etc:....... ****************
  177. Web Repository.........................hcuml.home.ml.org
  178. ========================================================
  179.  
  180. CONTENTS:
  181.  
  182. #1  Subject: "Your PC spies on you"
  183.  
  184. ARTICLES:
  185.  
  186. -----#1-------------------------------------------------
  187. Subject: "Your PC spies on you"
  188.  
  189. "Your PC spies on you". Under this title the French magazine "SWM"
  190. (price: 29FF; adress: 1, rue du Colonel Pierre Avia, 75503 Paris;
  191. tel 0146484708)to pvlished several articles in its latest April
  192. issue (pp.63-77). For those who are not able to consult it, here is the
  193. summary: "Who commits a computer crime, will be trapped by computers".
  194. "HD has a long memory". "You have deleted confidential data on your
  195. HD and thus you believe to be protected against information leakage?
  196. Be careful! It is much easier to burn a letter than to definitly destroy
  197. a computer file..." "One can never be sure that deleted HD files are
  198. really destroyed. In fact, Windows cuts only the logical access to them,
  199. but they continue to exist on the disk...Even if you delete them
  200. physically, there are means to recover their traces!". In Europe the
  201. experts are: PCM Assistance (Nancy, France) and US company Ontrack
  202. (London). Secret services, especially FBI, have their own labs.
  203. Many of shareware editors propose to register their products online,
  204. via modem. Can they in the meantime spy on our HD to find cracked
  205. (or smuggled) versions, or the presence of rival products? Great
  206. editors strongly deny that they ever considered such an usage, but
  207. admit that technically it is feasible through Windows Registry...
  208. Perhaps the safest way is to remain unknown to the editor."
  209. "Your Internet provider knows everythyng. For example, all your
  210. visited Web sites, time, your real identity, your E-mail (sent and
  211. received), all this without any effort, as it is stocked on their server.
  212. Of course, all providers will say that they never do such things.
  213. 'As a postman can read distributed postcards, so we can do it,
  214. but we do not lose the time on such futilities', answered to us
  215. provider F." "The visited Web sites know you better than you suppose".
  216. The way to arrest a computer. In former times the HD was dismantled
  217. and brought to a lab. Not now, because there are certains drivers
  218. which can destroy all data at any intrusion. Any access only by diskette,
  219. and browse only DOS. And then, as soon as possible, to install a TSR
  220. program Wright Block, which prevent any HD data modification. Then
  221. a copy of HD is being made; any further research is being made only on that
  222. copy. The most powerful research tool is Disk Search. To crack codes
  223. and passwords the US company Access Data has developped some tools.
  224. The most resistant to investigations is WindowsNT, for DOS reasons.
  225. End of quotations.
  226. Good and cheap German magazines: PC/DOS Magazin ********************
  227. price 8 DM, and Internet Magazin ************************** price
  228. 4.90 DM. Could not find any good cheap US magazine. Let me know
  229. if you know any. Can anybody tell me, how to get the book of Tom Swan,
  230. "Mastering Turbo Debugger",Paperback, published 1995, out of print ?
  231. End. AZ111.
  232.  
  233. =====End of Issue 184===================================
  234.  
  235.  
  236.  
  237.  
  238. ========================================================
  239. +HCU Maillist          Issue: 185             04/05/1998 
  240. --------------------------------------------------------
  241. Send Articles To:......................... *************
  242. Info, Help, Unsubscription, etc:....... ****************
  243. Web Repository.........................hcuml.home.ml.org
  244. ========================================================
  245.  
  246. CONTENTS:
  247.  
  248. #1  Subject: assembly book
  249.  
  250. ARTICLES:
  251.  
  252. -----#1-------------------------------------------------
  253. Subject: assembly book
  254.  
  255.  
  256. >Can anybody tell me, how to get the book of Tom Swan,
  257. >"Mastering Turbo Debugger",Paperback, published 1995, out of print ?
  258. >End. AZ111.
  259. >
  260.  
  261. I believe you are referring to "Mastering Turbo Assembler", a book 
  262. published by SAMS press for about US$45.
  263. Here it is from Amazon:
  264. *****************************************************************************************
  265. and here is a tutorial I just came across based on the book:
  266. **********************************************
  267. Now this looks like an excellent book. I have seen a couple of copies in 
  268. mainstream bookstores (those with good computer sections, at least) so 
  269. it should not be too hard to find, even if out of print. As I have so 
  270. many assembly books I decided for once to just wait for the new edition 
  271. before I pick up a copy :)
  272.  
  273. _m
  274.  
  275. ______________________________________________________
  276. Get Your Private, Free Email at **********************
  277.  
  278. =====End of Issue 185===================================
  279.  
  280.  
  281.  
  282.  
  283. ========================================================
  284. +HCU Maillist          Issue: 186             04/06/1998 
  285. --------------------------------------------------------
  286. Send Articles To:......................... *************
  287. Info, Help, Unsubscription, etc:....... ****************
  288. Web Repository.........................hcuml.home.ml.org
  289. ========================================================
  290.  
  291. CONTENTS:
  292.  
  293. #1  Subject: gthorne - regarding computer deletion and lack of security
  294.  
  295. ARTICLES:
  296.  
  297. -----#1-------------------------------------------------
  298. Subject: gthorne - regarding computer deletion and lack of security
  299.  
  300. Message Body = 
  301. on considering the article posted regarding pc spying on you - and its references to how difficult it is to hide data from 'data' prosecutors,
  302. is it any wonder why the US military (probably in the TEMPEST specification on comupter security) only considers a hard drive clean after being overwritten 7 times completely with zeroes?
  303.  
  304. +gthorne
  305.  
  306.  
  307. =====End of Issue 186===================================
  308.  
  309.  
  310.  
  311.  
  312. ========================================================
  313. +HCU Maillist          Issue: 187             04/07/1998 
  314. --------------------------------------------------------
  315. Send Articles To:......................... *************
  316. Info, Help, Unsubscription, etc:....... ****************
  317. Web Repository.........................hcuml.home.ml.org
  318. ========================================================
  319.  
  320. CONTENTS:
  321.  
  322. #1  Subject: data evidence
  323.  
  324. #2  Subject: In memory patching - final :)
  325.  
  326. #3  Subject: re: Assembly book
  327.  
  328. #4  Subject: Re: Assembly Books
  329.  
  330. #5  Subject: Fravia's Page
  331.  
  332. ARTICLES:
  333.  
  334. -----#1-------------------------------------------------
  335. Subject: data evidence
  336.  
  337. >is it any wonder why the US military (probably in the TEMPEST
  338. specification on >comupter security) only considers a hard drive clean
  339. after being overwritten 7 >times completely with zeroes?
  340.  
  341. I thought the tempest specs were just regarding e-m radiations from
  342. computers? In any case the overwriting with zero/ones is just for
  343. non-confidential data. I suspect more paranoid measures are taken with
  344. sensitive data which would mean an unusable hard disk.. well, what's left
  345. of it :)
  346.  
  347. I amazed a friend a while back when I unerased a file. He thought that when
  348. you erased it was gone forever. I'm sure you all know that dos just
  349. overwrites the first character of the filename with a special marker to
  350. show that it has been deleted. If you didn't know this try deleting a file
  351. and manually undeleting it using a disk editor. Also, even overwritten data
  352. can be recovered (with the right hardware) as the heads on the hard disk
  353. aren't exact so residual magnetic traces can be left behind. The idea of
  354. multiple overwrites is to hopefully make sure that most of the original
  355. data has been wiped.
  356.  
  357. I'm not sure what the tempest specs were written for as I find it hard to
  358. believe that you can mask the e/m emissions from a computer completely just
  359. by using special monitors and cabling etc.
  360.  
  361. It reminds me of an article I read (in New Scientist - I think) a few
  362. months/years (my memory isn't what it used to be!) back about the US
  363. embassy in Moscow. I think they called it the greatest monument to
  364. espionage. They believe the cost of the bugs inside the building are worth
  365. more than the building itself! The Americans made the mistake of getting
  366. local labour to make some of the wall panels (or something like that) and
  367. they ended up with hundreds of bugs in each panel. The taps were wired and
  368. bugs were sent through the plumbing. I think there was a windowless top
  369. floor surronded by a faraday cage to stop e/m snooping - but I think the
  370. Americans decided to build another building and use the old one for mundane
  371. tasks.
  372.  
  373. ~~
  374. Ghiribizzo
  375.  
  376. -----#2-------------------------------------------------
  377. Subject: In memory patching - final :)
  378.  
  379. This is the final edition of my "In memory patching" essay. Most is an
  380. exact repost of what I already wrote to this list before. My apologies.
  381.  
  382. Fravia: you can post it on your page - sorry it's not in HTML - I'm one
  383. of them HTML challeged crackers :)
  384.  
  385. enjoy,
  386. Stone / UCF & F4CG
  387.  
  388.  
  389.  
  390. Doc-Start:
  391. ---------------------
  392.                             In Memory Patching 
  393.                               Three approaches
  394.                           (C) Stone / UCF & F4CG '98
  395.  
  396.  
  397. After reading MadMax's essay on kernel patching I decided that perhaps
  398. it
  399. was time for an essay on "in memory patching". Contrary to the general
  400. +HCU
  401. philosophy my approach will be purely theoretical - the sourcecode I
  402. provide
  403. will serve as an example for you to build on. While this document might
  404. seem
  405. to be relatively technical and advanced it is unfortunately only an 
  406. introductory text into the wonderful world of abusing windows :)
  407.  
  408. Is something preventing a patch? Is your target encrypted, packed,
  409. CRC'ed or
  410. you need the program to run sometimes with the patch applied sometimes 
  411. without (A game-trainer for instance).Wouldn't you just love if you
  412. could 
  413. patch the program in memory after it loaded, unpacked, did the CRC
  414. checks 
  415. etc. ? You can. In the dos days we had TSR's to do this job. In the
  416. windows 
  417. world it's a bit more difficult as the programming interface (Win32 API)
  418. is 
  419. dynamic in contrast to dos's static interupt system. However new methods
  420. which
  421. in many ways are similar to TSR's are now avaible.
  422.  
  423. Kernel patching as MadMax pointed out is generally a bad idea. We need a
  424. more
  425. gentle approach. Which critereas would we like our solution to conform
  426. to?
  427. The critereas I'll use is:
  428. 1) The approach should perform ok in terms of compatability. That is
  429. work
  430. on both NT and 95 and hopefully on future versions as well.
  431.  
  432. 2) The operating system should not suffer any long term effects of the
  433. crack.
  434. That is after termination of the target the OS should be left unchanged.
  435.  
  436. 3) Only ring 3 meassures should be used. (Some of the API-functions I'll
  437. use
  438. from ring 3 will actually switch to ring 0, but atleast there will be no
  439. foreign code introduced at ring 0) For a discussion of this issue see
  440. various
  441. issues of HCU ML (Participants: Quine, RCG & myself)
  442.  
  443.  
  444. Common ground
  445. Our immediate problem is that in a preemptive operating system like
  446. Windows
  447. each process runs in it's own addressing space. Each time that the
  448. operating
  449. system switches to another process the virtual mapping is changed to fit
  450. that
  451. of the current process. The whole idea with memory patching is providing
  452. means of patching the target in it's addressing space at a certain time 
  453. (after unpacking, CRC'ing or whatever is done). However since a criterea
  454. of the memory patch is that we can't patch the operating system nor the
  455. program itself we need to find a way of gaining access to the target 
  456. addressing space from another processes.
  457.  
  458. The next problem we got is one of timing. Obviously the target needs to
  459. be
  460. patched after the CRC check has been performed or after it is unpacked
  461. in 
  462. memory. And possibly it needs to be unpatched again to pass later
  463. checks. In
  464. other words we need a reliable trigger mechanisms. It is in this respect
  465. that the three methods I'll present here differ.
  466.  
  467. The loader approach
  468. The critical assumption I'll make here is that the USER of the program
  469. can
  470. tell us how to time the patch thru another program. This basically means
  471. we assume that the user can:
  472. 1) Identify when patching is appropriate.
  473. 2) Switch to another program to activate.
  474.  
  475. About the first assumption it can be said - if it's a trainer this will
  476. never
  477. be a problem. Obviously the user will know when he want's to have
  478. infinate
  479. lives. Often a messagebox or some other visable sign shows itself when a
  480. patch is needed. E.g. A messagebox saying "Insert correct CD in drive
  481. and 
  482. press OK" - It'd be easy to write a doc saying that when this occurs the
  483. dear user should press OK in another window first, and then in the
  484. target's
  485. obnoxious messagebox. However this is a serious shortcomming. Who said
  486. the
  487. program will actually let the user make a retry? Most 30-day trials tell
  488. the
  489. user the program has expired and the just exit or trial mode or
  490. whatever.
  491. Perhaps many different locations has to be patch at many different time
  492. making
  493. user-controlled patching a cumbersome solution.
  494.  
  495. On assumption 2 can it be said that many games doesn't like switching
  496. tasks
  497. and it's not likely that users will enjoy having to switch out of their
  498. game
  499. to get a new handful of bullets or whatever.
  500.  
  501. Let's get a bit more technical. Windows is so nice to provide us with an
  502. interface to write in other processes addressing space. The API needed
  503. is:
  504. kernel32!WriteProcessMemory
  505. If one take a closer look at this you'll find that what it actually does
  506. utillize Windows's int 2eh interface to switch to ring 0 meaning that it
  507. has
  508. ring 0 priveledges and thus is able to override page protection. However
  509. the interface has build in a security feature so you cannot override
  510. ring 0
  511. data/code. (The int 2eh interface is for NT - I figure Windows 95 does 
  512. something similar but I havn't checked it. Anyways the result is the
  513. same)
  514.  
  515. For WriteProcessMemory to work we need to identify by handle which
  516. process we
  517. want patched. IMHO the best to find such a handle is to create the
  518. target
  519. process yourself - that is do a good old fashioned EXEC from within your
  520. patch/trainer code. The API is 
  521. Kernel32!CreateProcessA
  522. Ofcause there is different means of finding process handles.
  523.  
  524. To summerize a in-memory-patcher of this kind:
  525. CreateProcessA (Target)
  526. Wait for the user to say apply patch - e.g. a messagebox
  527. WriteProcessMemory
  528.  
  529. Sourcecodes at:
  530. ******************************************** (or something)
  531. ------------------------------------------------------------------------
  532. -
  533.  
  534. The API-Hook/Debug Approach
  535.  
  536. Obviously the assumptions made for the Loader Approach can be too 
  537. restrictive. For instance 30-day trials often exit prior to offering the
  538. user any obvious point of introducing a patch. So does dongles. Players
  539. might not like to switch task out of their beloved game to get another
  540. 10
  541. bullets or whatever. What we really need is the target to trigger the
  542. patch
  543. and this section is a way of doing this.
  544.  
  545. The whole idea here is to hook an API-call, and make it perform to our
  546. desire. That can be return fake values under certain circumstances
  547. it could be to patch the main program or it's dll's in memory. In short
  548. what we wish to do is to let the api-call the program performs be
  549. surrounded
  550. by our code so that we can make it perform in every way we wish. Certain
  551. side benefits will come along as well. That is the code I present will
  552. show
  553. how it's possible to introduce breakpoints in an automated debugger
  554. which
  555. is indeed something very useful for the creation of for instance
  556. unpackers.
  557.  
  558. Again let's get down to it. A PE-file "imports" the functions it wishes
  559. to
  560. make use of. Because MS-developers decieded on a dynamic structure for
  561. API's
  562. it's obviously neasesary for each program to declare what functions it
  563. uses.
  564. This is done in a so called import table. Let's now take a deeper look
  565. into
  566. what takes place between the importtable in the PE-file and the
  567. execution of
  568. an API call by the target.
  569.  
  570.  
  571. 3 basic types of information is stored in the importtable. The first is
  572. DLL
  573. names, the second is function names and the third is a Thunk-RVA.
  574. The information is stored in a structure that looks something like this:
  575.  
  576.     DLL1-Name
  577.         Function1-from-dll1- name or ordinal
  578.             Thunk-RVA of Function 1 of DLL 1
  579.         Function2-from-1dll-name or ordinal
  580.             Thunk-RVA of Function 2 of DLL 1
  581.         ....
  582.  
  583.     DLL2-Name
  584.         Function1-from-dll2- name or ordinal
  585.             Thunk-RVA of Function 1 of DLL 2
  586.         Function2-from-1dl2-name or ordinal
  587.             Thunk-RVA of Function 2 of DLL 2
  588.         ....
  589.     ...
  590.  
  591. What Windows does while loading the PE-file is traverse thru this table 
  592. following this "pseudo code":
  593.  
  594.   While more DLL's do
  595.      { Load DLL into process addressing space 
  596.          While More Functions imported from current DLL do 
  597.             { Find address of Function and write this to the Thunk-VA
  598. for
  599.               this Function 
  600.              } 
  601.       }
  602.     END Load Imports
  603.  
  604. The function may be listed by name or something called ordinal. In every
  605. DLL
  606. each function that it exports for use by other programs is listed in an 
  607. export directory (which is where Windows find the address of the
  608. imported 
  609. function) in this list each DLL is assigned a number and usually a name
  610. too.
  611. The number is called ordinal. Importing can be done either by
  612. referencing
  613. this ordinal value or by using the name.
  614.              
  615. What the program then does when it's in need of the API-function it is
  616. this:
  617. CALL Dword ptr [Thunk VA of needed function]
  618. As an unimportant side note it can here be noticed that Borland and old 
  619. Microsoft Compilers does this perfectly equivilent thing, calling a jmp
  620. dword 
  621. ptr [Thunk VA] instruction.
  622.  
  623. Lets for a second imagine that we could stop execution of the target
  624. process
  625. right before it started and then inject our own code in to it's
  626. addressing
  627. space. Then we could simply replace the value at any Thunk-VA with a
  628. pointer
  629. to our own code and our code would be executed every time the program
  630. decieded
  631. to use this API. We could even save the old pointer and use this to
  632. chain
  633. the original intended API-code. Weeeeeee.. "Isn't this just great?" as
  634. Oprah
  635. Winfrey would say. "No, it is not", as I would reply.
  636.   
  637. We are left with a new problem. Or rather two. The first is stopping 
  638. Execution of the target process before the program runs the first 
  639. instruction so that we can be sure that our new pointers are in order.
  640. Second
  641. we're left the great problem of having code in the target's addressing
  642. space.
  643.  
  644. Solving a problem at the time we start by examining how we can stop our 
  645. target process. Many people always state that Windows is overbloated and
  646. perhaps they are right - but in this case I'd say that it's damn
  647. convinient
  648. that MS-engeneers made a full-featured debug interface while designing
  649. API 
  650. calls so that we could with the greatest of ease program a debugger
  651. without
  652. having to do the low-level work ourselves. Infact they made it so that
  653. not
  654. one line of ring 0 code has to be written to make an application
  655. debugger.
  656. "Isn't this just great?" as Oprah would phrase it? "Yes it is, maam" as
  657. would reply. Because it get's even better. Windows engineers must've 
  658. actually been thinking the day they made Windows. What good is a 
  659. full-featured debug interface if the poor programmer has to make a
  660. PE-loader
  661. before he can even start debugging. Hey after all they already made a 
  662. loader and they decieded to be helpful. CreateProcessA can open a
  663. process in
  664. Debug mode. This means that inside of most Windows's procedures hides
  665. status
  666. breakpoints that'll turn over the control to our debugger thru that
  667. interface. One of these status breakpoints triggers just before Windows
  668. is 
  669. about to turn over control to the just loaded PE-file. Convinient!
  670.  
  671. Obviously if a process is in debug mode execution is suspended everytime
  672. a
  673. debug event occurs. A debug event is any non-handled exception.
  674. Pagefaults,
  675. breakpoints, division overflows, etc. And there is 6 different types of
  676. status breakpoints inside Windows that'll be triggering like Rambo in
  677. Iraq.
  678. So basically we need to send a message from our debugger process that
  679. it's 
  680. ok to continiue every time we have encountered such an event. Ofcause if
  681. it's
  682. the event we've been looking for we need to do whatever it is we wish to
  683. do
  684. before giving the green light to run on. This is the reason behind the
  685. loop
  686. of
  687. kernel32!WaitForDebugEvent
  688. and
  689. kernel32!ContiniueDebugEvent
  690. in my code.
  691.  
  692. So now we know how to stop the program before it actually started. If
  693. you 
  694. read the previous section you'll know how to exchange pointers. This
  695. leaves
  696. us with a grave problem. Injecting our code into the target's addressing
  697. space.
  698. Now this can be done in many ways indeed. We'll just be looking the one
  699. chose.
  700.  
  701. What I'll try to obtain is making the program load a DLL for me. This
  702. ofcause
  703. isn't something the program is willing to do without force. Fortunately
  704. for
  705. the moment I'm President Clinton and the security counsil has agreed to
  706. bomb
  707. the target until it conforms to my ideas. The scene is set at the status
  708. breakpoint just before the target is about to start execution. It is
  709. fully
  710. loaded and ready to go. However we're sitting comfortably with it
  711. suspended
  712. far far away in our own addressing space. The first thing we got to
  713. agree
  714. on is how it is we actually want's the target to do. Load OUR dll, find
  715. the
  716. process address of OUR function, replace the one found at the THunk-VA
  717. of
  718. the original. We now constuct code that will do just that in deltaoffset
  719. so
  720. that it can be inserted anywhere. Prior to actually running the program
  721. we
  722. found a page within the target that allowed execution. Most pages in the
  723. target allows execution but we just need one. We now read the page out
  724. the
  725. Process space of the target into our own and stores it safely. This is
  726. done
  727. thru another subfunction of INT 2eh which ofcause also overrides
  728. pageprotection etc. The API is:
  729. kernel32!ReadProcessMemory
  730. See Natzguls essay for a more thourough breakdown of this function. Now
  731. we
  732. write our own code that loads a DLL, finds the address of our function
  733. and
  734. replaces the Thunk-VA entry of the function with ours. 
  735.  
  736. Now were ready to go? No. We're left with the problem that execution
  737. should 
  738. be left otherwise unchanged so that we've written a page somewhere is
  739. bad 
  740. news.  So in addition to the code we appended we add an INT 3 which will
  741. when 
  742. executed cause a debug event and once more suspend the target allowing
  743. us 
  744. to restore the page. Unfortunately EIP of the target does not
  745. neassesarely 
  746. point to our page, further we use all the registers and those needs to
  747. be
  748. restored too. So where do we turn? Windows internal knowledge. Upon
  749. creation
  750. that is prior to running any actual program code any one process has one
  751. and
  752. one thread only. Further Windows allows debuggers to fetch the Context
  753. of a 
  754. thread. That is all relevant information about the threads current
  755. status.
  756. Such a context was originally intended for preemptive multitasking so
  757. that 
  758. when ever the OS suspended execution of the thread to do another the
  759. context
  760. was saved, the address space swapped and another threads context was
  761. restored
  762. it's process's address space swapped in place and it was allowed to
  763. continiue.
  764. One should be aware that while a thread indeed has full context it's
  765. partly
  766. shared with that of the other threads in the process. E.g. the FPU is
  767. shared
  768. between threads in a process. Since we only got one thread in our
  769. process
  770. the terms of thread and process is incidental. I will not get dirty with
  771. the
  772. exact definitions of thread and process since a breakdown of operating
  773. system
  774. concepts is beyound the scope of this here text. Iceman (1998) has a
  775. brief
  776. description.
  777. We ofcause now reads the context of our target's single thread, saves it
  778. then
  779. changes the EIP in it an resets it to point to our page of code in the 
  780. target processspace. Ofcause our code will now execute till the int 3 we
  781. inserted is reached, then it's suspended and control is back with us. We
  782. now reset the context of the thread and restore the page we abused for
  783. our 
  784. code. Then we simply let it run.
  785.  
  786. There is one last unfortunate thing about letting it run. If a process
  787. was
  788. created in Debug mode it stays in debug mode till it's terminated. That
  789. means
  790. that we need to stay in a loop of WaitForDebugEvent/ContiniueDebugEvent
  791. until
  792. that time where the process is actually terminated or the program will 
  793. suspend itself and wait for our instructions. This wasn't too smart MS!
  794.  
  795. Practical notes on the debug approach
  796. A last side note should be mentioned here. For reasons of alignment the
  797. Context
  798. structure should be on an address A so that (A and 3)=0. This is indeed
  799. not 
  800. documented in MS's documentation of GetThreadContext. It is this that
  801. left
  802. me to believe that there was a bug in Windows NT in a previous edition
  803. of this
  804. text. Thanks to Quine for this correction. The reason that this
  805. alignment is
  806. required seems to be one of processing speed as x86'ers does not require
  807. this
  808. type of alignment.
  809.  
  810. Further finding the ChunkVA of an imported function can easily be done
  811. by
  812. dumping the PE-file with Matt Pietreks PE-dump or similar. He gives the
  813. first
  814. chunk for each DLL, if your function isn't the first you add 4 bytes
  815. each 
  816. time you need to move a line down to find our function.
  817.  
  818. The sourcecodes for this can be found at:
  819. ********************************************
  820.  
  821. ------------------------------------------------------------------------
  822. ---
  823. The MessageHook Approach
  824.  
  825. I'll skip relatively lightly over the in-depth technical issues of this
  826. method.
  827. It is simply far beyond this text to go into it. Maybe someday I'll
  828. write a
  829. book or something :) sorry.. 
  830.  
  831. The above method has it's advantages - and disadvantages. It's
  832. cumbersome.
  833. Indeed in many instances access to foreign addressing spaces can be
  834. gained
  835. easier. I will now examine one such method. The method was first
  836. described
  837. in MSJ 1994. I first noticed the potency of this method examing Grudge's
  838. crack 
  839. for SubSpace. My sourcecodes and approach as such bares many
  840. resemblances with
  841. Grudge's initial work.
  842.  
  843. Most likely you've all encountered Windows Messageing system at one
  844. point or
  845. another. Breakpoints on "BMSG", HWND command in Winice is indeed
  846. breakpoints
  847. on messages and list possible recievers of messages. The whole idea
  848. behind
  849. messages goes back to the fact that we have a multitasking operating
  850. system.
  851. Several tasks needs to share equipment that can only be used by one at
  852. the time.
  853. The obvious example is the mouse - the user will have only ONE mouse
  854. total, not
  855. one for each thread. Another is the keyboard, keyboard input is often
  856. ment for 
  857. only one of the running threads. A total breakdown of the windows
  858. messageing
  859. and windowing system is far far beyound the scope of this small text.
  860. It'll 
  861. suffice to say that any window made by any thread in any process is
  862. controlled
  863. thru messages from the Windows operating system.
  864.  
  865. Again we'll exploit that Windows is an overbloated operating system - or
  866. well
  867. as I would rather put it - a very potent equipped OS. The feature we'll
  868. be 
  869. exploiting here is that of a Hook in the message system. For many
  870. reasons 
  871. Microsoft decieded that even at ring 3 people should be able to
  872. intercept 
  873. messages send to windows. Because they wanted this hook to be usuable
  874. for 
  875. Computer Based Training they decieded that a hook would be no good if it
  876. did
  877. not have direct access to the addressing space of the process belonging
  878. to the
  879. thread it captured a message for. So they decieded that a
  880. MessageHookHandling 
  881. procedure should be loaded into any process in which it captured a
  882. message. 
  883. Further developers must've felt generous the day they designed this.
  884. They 
  885. allowed a hook not just to one process - but to all! 
  886.  
  887. Let's get a bit more technical on this. The API that installs the hook
  888. is:
  889. User32!SetWindowsHookExA
  890.  
  891. The first problem about using this API to hook windows messages globally
  892. is
  893. the way it gain access to the address space of the thread which it
  894. intercepted
  895. a message to. To get real deep on this issue is again far beyound the
  896. scope
  897. of this text, but it has to do with how modules is mapped in pages thru
  898. out
  899. the various memory contexts (Process addressing spaces). 
  900. The result is that you cannot have the hook within the EXE file that
  901. installs 
  902. the hook - rather you need to have it in a DLL.
  903.  
  904. In other words we start out by loading the DLL in which we have our
  905. hook, then
  906. find the address of our hook procedure in it and feed this to
  907. SetWindowsHookExA.
  908.  
  909.  
  910. The next problem we encounter is that of designing a messagehandling
  911. system. 
  912. Since a LOT of messages is send out to windows system wide all the time
  913. it's 
  914. important that we design our hook to be relatively fast or we'll be
  915. slowing the
  916. system. The easist way of doing this is only acting upon messages of a
  917. specific 
  918. type. Choosing type depends on how you wish to time your patch. You can
  919. in 
  920. this way time it to hit on keyboard activity in a window, mouse
  921. activity, 
  922. windows being put to background and so on and so forth. 
  923.  
  924. I've choosen the real simple hook type intended for
  925. ComputerBasedTraining. This
  926. hooks a large number of messages related to windows giving us plenty of
  927. things
  928. to act on without intercepting everything. Further in the hook procedure
  929. test weather the message send was one that is supposed to create a
  930. window. 
  931. This allows me to patch right after the "main" window of the program is
  932. created.
  933. Without intercepting too much and even when intercepting I only run a
  934. few bytes
  935. of my code unless ofcause it happens that the program is creating a
  936. window.
  937. Obviously I might end up patching more than since this message type can
  938. be
  939. send many times. Other strategies could be hooking the keyboard, all
  940. messages
  941. etc. I very much believe that which type of hook and the exact design of
  942. your
  943. hook-handler is an issue that should be solved in relation to the
  944. specific 
  945. problem you're dealing with. For instance in training hooking the
  946. keyboard 
  947. and only acting on specific keys would be a good idea instead of acting
  948. on
  949. the window. 
  950.  
  951. Mammon/HCU suggest a boolean variable to see if you already applied a
  952. patch.
  953. This can be a very good idea. Even better would be if you shut down your
  954. hook-installing process (program) and the hook along with it after
  955. you've 
  956. patched. You should however be aware that this method has a caveat if
  957. your user
  958. deciedes to run multiple versions of the program you patched or if
  959. you're 
  960. patching kernel32.dll in memory since this DLL might need to be patched
  961. more
  962. than once because an unpatched version might later on be mapped into
  963. your
  964. target's addressing space. Thanks to Mammon/HCU for a beneficial
  965. suggestion.
  966.  
  967. The next problem is that we need to hinder that we patch all processes.
  968. Again
  969. I abuse the concept of modules. By getting the current module filename
  970. and 
  971. compareing it to the filename of the file we desire to patch I can
  972. identify 
  973. weather this message was send to the target or to another program
  974. windows.
  975.  
  976. And the last problem is ofcause that we cannot keep messages from the
  977. target's
  978. windows and expect it to perform like it's supposed to. What we do is
  979. that we
  980. chain other possible hooks using the neatly provided API:
  981. user32!CallNextHookEx
  982.  
  983. One final things is worth noting Exiting the process who "owns" the hook
  984. will
  985. destroy it - in other words we cannot shut down until we're sure we've
  986. patched
  987. the program and we cannot shut down if need multiple patches (as
  988. patching
  989. e.g. kernel32.dll (which is a bad idea anyway) would require. The good
  990. thing
  991. about it is that we can simply call ExitProcess when we're done and
  992. windows
  993. will take down the hook for us with no further adue... Pretty clever MS!
  994.  
  995. Since we in the hook-procedure have direct access to the addressing
  996. space
  997. of the target process we wouldn't need to use WriteProcessMemory,
  998. however 
  999. it's a very good idea to do so. First and foremost WPM as described
  1000. earlier
  1001. overrides pageprotection. Second and also important - there is a
  1002. difference
  1003. in how pages in a process is handled between Windows 95 and Windows NT.
  1004. If
  1005. you patch a program's pages in Win NT (if it's not shared) it'll be
  1006. copied
  1007. and then the copy will be patched - thus the patch will not affect other
  1008. processes utillizing the same module. In windows 95 this is not so.
  1009. However
  1010. WriteProcessMemory in Windows 95 has build in this mechanism ensuring
  1011. that
  1012. if you use WriteProcessMemory you'll not suffer differences between NT
  1013. and
  1014. 95. (This is not true if you patch above the 2g limit - which I btw
  1015. cannot
  1016. see why you'd do)
  1017.  
  1018. Here at the end I'll shortly describe the caveats of this method. It
  1019. requires
  1020. a window. Without a window in the target process you can't do didly with
  1021. this
  1022. method. However you can use this method to inject a DLL into the address
  1023. space
  1024. after the window has disappeared and then patch the IAT to make a
  1025. API-hook of
  1026. it like in the Debug-approach section.
  1027.  
  1028. Sourcecodes is avaible at:
  1029. ********************************************
  1030.  
  1031. ------------------------------------------------------------------------
  1032. ------
  1033. Litterature
  1034.  
  1035. MadMax (1998) - Cracking using kernel32??, by MadMax Feb 1998.
  1036. ******************
  1037.  
  1038. Natzgul (1998) - Unknown tittle, by Natzgul Jan 1998.
  1039. ******************
  1040.  
  1041. Iceman (1998) - Tweaking with Windows 95 memory, by Iceman jan 1998
  1042. *****************************
  1043.  
  1044. Pietrek, Matt - Windows 95 System Programming Secrets, IDG books 1995.
  1045.  
  1046. MSJ (1995) - Microsoft Systems Journal May 1995, Jeffrey Ritcher.
  1047.  
  1048. Various sourcecodes by Me :).. all can be found on my page
  1049. ************************
  1050.  
  1051. ------------------------------------------------------------------------
  1052. -----
  1053. Thanks must go to:
  1054. Patriarch / PWA, friend, roomate and local expert.
  1055. Random / Xforce, God of the PE-format
  1056. Net Walker / Brazil
  1057. Quine / HCU
  1058. Acpizer / UCF, nah.. couldn't use what you send me.. but thnx anyways.
  1059. Grudge / CLS, it's been a pleassure abusing your work :)
  1060. Mammon / HCU
  1061. IceMan / HCU
  1062. United Cracking Force, my personal benefactor.
  1063. All of which I had many enlightning discussions with.
  1064.  
  1065. Also I'd like to thank
  1066. HalVar/HCU
  1067. WayneKerr/F4CG
  1068. LordByte/UCF
  1069. Madmax/HCU
  1070. G-Rom / Phrozen Crew
  1071.  
  1072. The Owl - Zen god of WinIce and a master of windows who have thought me
  1073. a lot.
  1074. and many others
  1075. for their encouragements
  1076.  
  1077. email: ************
  1078. ************************
  1079. Stone / UCF & F4CG
  1080. 2nd&mi!
  1081.  
  1082.  
  1083.  
  1084.  
  1085. -----#3-------------------------------------------------
  1086. Subject: re: Assembly book
  1087.  
  1088. To: _m and others
  1089. No, I mean the right title, and it is registered at Amazon.com
  1090. as "hard to find". In the book "Mastering Turbo Assembler" Turbo
  1091. Debugger is briefly mentionned only on a few pages (37-41), where
  1092. the author (the same!) admits that Turbo Debugger can be used as an
  1093. assembly teacher, and shows some examples. Curiously, the book is
  1094. not mentionned at all in his bibliographical list.
  1095. Another cuoriosity is the book of Michael Abrash, "Zen of Assembly
  1096. Language", 1990,(also "hard to find" for Amazon.com), recommended
  1097. by Jeff Duntemann in his book "Assembly Language", 1992, p.372:
  1098. "Becoming a master takes work and time. Michael Abrash massive
  1099. 'Zen of Assembly Language' (now out of print but to be republished
  1100. soon) is a compilation of the "secret" knowledge of a programming
  1101. master". The book was never republished, and Michael Abrash continues
  1102. to write books on the other subjects. It remind us also that the
  1103. author of +ORC tutorials recommended to use a zen approach.
  1104. Source references may reveal much. For example, when IDA Pro was
  1105. announced on Fravia pages, I went to the home site of IDA where
  1106. the author gave (only in Russian) source references, where the book
  1107. of Cristina Cifuentes "Reverse Compilation Techniques" (1994) was
  1108. qualified as the best published source. All sources were English.
  1109. It means that nothing good was published in Russia on the subject.
  1110. Those who are interested in Russian sources, have to consult
  1111. two thick books published by Wrox Press (see their Website):
  1112. "Revolutionary guide to Assembly language" and "Assembly language.
  1113. Master class" (all authors are from Russia, only in English).
  1114. Source references of Cifuentes also reveal much: "Techniques for
  1115. writing reverse compilers or decompilers are presented in this
  1116. thesis...These techniques have never before been published" (p.V).
  1117. Further, p.15: "Decompilation is a tool for a computer professional.
  1118. There are two major areas where decompilation is used: software
  1119. maintenance and security... It is not the purpose of this thesis to
  1120. debate the legal implications of decompilation. The topic is not
  1121. further covered in this thesis".
  1122. Thanks. AZ111.
  1123.  
  1124. -----#4-------------------------------------------------
  1125. Subject: Re: Assembly Books
  1126.  
  1127.  
  1128. >
  1129. >>Can anybody tell me, how to get the book of Tom Swan,
  1130.  
  1131. >
  1132. >I believe you are referring to "Mastering Turbo Assembler", a book 
  1133.  
  1134. I picked up acopy of this a week ago in a closing bookstore for
  1135. 25$... it is a nice book, but if you ask me, for anyone who knows
  1136. basic assembly, one of the best books to buy is "Assembly Language
  1137. Master Class", by various authors (P. Kalachnin, Yuri Kiselev,
  1138. Igor Chebotko, Efim Podvoisky, Kiril Malakhov etc)
  1139.  
  1140. I bought it in the same shop as the other, after Gthorne said some-
  1141. thing about it.
  1142.  
  1143. While much of the source is MASM, it treats just about any topic 
  1144. you'd want to know about (except Win programming, but who would 
  1145. want to program Win anywways ;-)
  1146.  
  1147. I know much of that stuff will be old for really experienced 
  1148. programmers, but for all those that know basic assembly and not
  1149. much beyond that this book is a treasure chest. 
  1150. Topics include:
  1151.      - a (short) chapter on Disassembly
  1152.      - device drivers
  1153.      - programming the PIC (interrupt controller)
  1154.      - printing/mouse in assembly
  1155.      - DMA programming /ISA interfacing
  1156.      - sound
  1157.      - low-level Disk programming
  1158.      - data compression
  1159.      - VGA/SVGA
  1160.      - EMS/XMS
  1161.      - Pentium Programming
  1162.      - PMODE
  1163.      - Virii/AV
  1164.      - optimizations
  1165.  
  1166. The chapter on PMODE is probably the best documentation
  1167. on how to write pmode programs (DPMI servers, Extenders)
  1168. I've seen, and it helped me a great deal to understand
  1169. (and put to use) the IDT and GDT and LDT commands in 
  1170. S-ICE.. I recommend this book for anyone who wants to get
  1171. past the "jnz BadGuy" cracking :-)
  1172.  
  1173. The book ain't cheap though, you'll have to pay 50$, but it's
  1174. very well worth it. 
  1175. I don't know, I haven't cracked sh*t since I bought this book,
  1176. there's too much stuff to fool around with in there :-)
  1177.  
  1178. I had a question to this mailinglist a couple o' weeks ago 
  1179. where I wondered why the program never called int9 even 
  1180. when it's Keyboard routine was in int9 :-) Now I know :-)
  1181. (I know, all you old school guy's will say "big deal" :-)
  1182.  
  1183. When it comes to "mastering Turbo Assembler" I have to say
  1184. that this book is good if you don't use Macros and conditional
  1185. assembly yet, but if I had the choice between Master Class 
  1186. and Mastering, I know what to choose :-)
  1187.  
  1188. ISBN for "Assembly Language Master Class" is 
  1189. 1-874416-34-6
  1190. 49.95 US &, $69.95 Can and 46.99 UK :-)
  1191.  
  1192. And you know you made a good progress once you write your own
  1193. extender :-)
  1194.  
  1195. Hey, anyone wanna develop a new OS ;->>>
  1196. (don't take me seriously on this one)
  1197.  
  1198.  
  1199. HalVar
  1200.  
  1201.  
  1202. ______________________________________________________
  1203. Get Your Private, Free Email at **********************
  1204.  
  1205. -----#5-------------------------------------------------
  1206. Subject: Fravia's Page
  1207.  
  1208. I just thought I'd share this with you. I was reading
  1209. through the documentation on a program, XDesk to be
  1210. exact(I really like it too, so many features!!! Check
  1211. it out.) anyways.. I thought this was kinda funny,
  1212. here's the quote:
  1213.  
  1214.  "Actually the "time protection" is not actually intended 
  1215.   to stop you from "stealing" this program - any beginner 
  1216.   in "reverse engineering" (see fravia's pages, the best 
  1217.   site with this kind of stuff !) can get some results in 
  1218.   less than five minutes -"
  1219.  
  1220. So instead of protecting it well, he admits that it's
  1221. protected pathetically and he expects it to be cracked.
  1222. hehe... I don't know who the programmer is but that's 
  1223. a person I can respect.
  1224.  
  1225.  
  1226. ----- [ REKLAMA / ADVERTISEMENT ] ----------------------------------------
  1227. Lubisz film?! Wiec na co czekasz? Przylacz sie do FILMWEBU!
  1228. Pierwszy Polski Serwis Filmowy w Internecie  *********************
  1229. --------------------------------------------------------------------------
  1230.  
  1231.  
  1232. =====End of Issue 187===================================
  1233.  
  1234.  
  1235.  
  1236.  
  1237. ========================================================
  1238. +HCU Maillist          Issue: 188             04/08/1998 
  1239. --------------------------------------------------------
  1240. Send Articles To:......................... *************
  1241. Info, Help, Unsubscription, etc:....... ****************
  1242. Web Repository.........................hcuml.home.ml.org
  1243. ========================================================
  1244.  
  1245. CONTENTS:
  1246.  
  1247. #1  Subject: gthorne - on tempest
  1248.  
  1249. ARTICLES:
  1250.  
  1251. -----#1-------------------------------------------------
  1252. Subject: gthorne - on tempest
  1253.  
  1254. Message Body = 
  1255.  
  1256. tempest specs refer to more than cabling
  1257. i thought the 7x erasure was in that reading, but looking back - it was mentioned in the same article where i first read about tempest - it ws on government security in general
  1258.  
  1259. tempest itself requires that not only are there high grade cables, but the rooms must be armored... ie: lead lined to prevent EM
  1260.  
  1261. that is how they solve it
  1262.  
  1263. recently i read about how much government surplus military mechandise was being marked as 'destroyed' or 'inoperable' and yet was mis-marked
  1264. everything from tanks to automatic weapons to guided missile systems are being sold at ridculously cheap costs on the open market - so their paranoia in creating a tempest spec to keep people from using scanners to pick up your keypresses is justified... especially when the rest of the world has access to USA's own high tech equipment
  1265.  
  1266. effectively - reading more and more about government oversights, the more scary it becomes
  1267.  
  1268. +gthorne
  1269.  
  1270.  
  1271. =====End of Issue 188===================================
  1272.  
  1273.  
  1274.  
  1275.  
  1276. ========================================================
  1277. +HCU Maillist          Issue: 189             04/09/1998 
  1278. --------------------------------------------------------
  1279. Send Articles To:......................... *************
  1280. Info, Help, Unsubscription, etc:....... ****************
  1281. Web Repository.........................hcuml.home.ml.org
  1282. ========================================================
  1283.  
  1284. CONTENTS:
  1285.  
  1286. #1  Subject: Tempest
  1287.  
  1288. #2  Subject: Cookies and protection schemes
  1289.  
  1290. ARTICLES:
  1291.  
  1292. -----#1-------------------------------------------------
  1293. Subject: Tempest
  1294.  
  1295. Equipment conforming to the standards detailed in NACSIM 5100A are called
  1296. 'Tempest Certified'. Unfortunately the document has been classified by the
  1297. NSA so we don't actually know what the standards are. In fact, they seem to
  1298. have classified everything to do with the subject.
  1299.  
  1300. Professor Wim van Eck wrote a paper on the subject of capturing e/m
  1301. emissions and estimated that they could be picked up from around 1km away.
  1302. The receivers are sometimes called van Eck devices. (BTW, the NSA
  1303. classified his paper :)
  1304.  
  1305. It's hard to guess how effectively you can protect yourself from a
  1306. 'Tempest' attack. I think I'll build a van Eck device later this summer and
  1307. test it out. I believe that it would be impossible to completely shield
  1308. yourself (at least on the budget of mere mortals!) but perhaps it would be
  1309. possible to protect yourself from the 'hobbyists' because the scariest
  1310. thing is that these devices are not difficult to build.
  1311.  
  1312. Even a lead lined room wouldn't be much good.. your computer's attached to
  1313. the telephone line which not only is a perfect antenna, but probably leads
  1314. all over your house! I'm not convinced that a sealed, windowless, lead
  1315. lined room would be sufficient anyway - I think you would probably need
  1316. something like a faraday cage.
  1317.  
  1318. ~~
  1319. Ghiribizzo
  1320.  
  1321.  
  1322.  
  1323.  
  1324. -----#2-------------------------------------------------
  1325. Subject: Cookies and protection schemes
  1326.  
  1327. Hi all!
  1328. Take a look at ************************* 
  1329. here you can download time-limited program (jackpot, etc...)
  1330. with a unusual protection scheme... I SUPPOSE!
  1331. This program use, in fact, the cookies and Temporary Internet Files
  1332. folders and win.ini (in the download page they say: 
  1333. 'ATTENZIONE: Il download richiede Internet Explorer.') 
  1334.    
  1335. Thanks. 
  1336. n0m0re
  1337.  
  1338. ______________________________________________________
  1339. Get Your Private, Free Email at **********************
  1340.  
  1341. =====End of Issue 189===================================
  1342.  
  1343.  
  1344.  
  1345.  
  1346. ========================================================
  1347. +HCU Maillist          Issue: 190             04/11/1998 
  1348. --------------------------------------------------------
  1349. Send Articles To:......................... *************
  1350. Info, Help, Unsubscription, etc:....... ****************
  1351. Web Repository.........................hcuml.home.ml.org
  1352. ========================================================
  1353.  
  1354. CONTENTS:
  1355.  
  1356. #1  Subject: Free Call
  1357.  
  1358. #2  Subject: van Eck device
  1359.  
  1360. #3  Subject: Security, Tempest, etc.
  1361.  
  1362. #4  Subject: help...
  1363.  
  1364. ARTICLES:
  1365.  
  1366. -----#1-------------------------------------------------
  1367. Subject: Free Call
  1368.  
  1369. Has anyone hints to phone for free on Net to people not on Net?
  1370. Like Net2phone?
  1371. Ceban
  1372.  
  1373. ______________________________________________________
  1374. Get Your Private, Free Email at **********************
  1375.  
  1376. -----#2-------------------------------------------------
  1377. Subject: van Eck device
  1378.  
  1379. Hi Ghiribizzo!
  1380.  
  1381. You wrote:
  1382. >It's hard to guess how effectively you can protect yourself from a
  1383. >'Tempest' attack. I think I'll build a van Eck device later this summer and
  1384. >test it out. I believe that it would be impossible to completely shield
  1385. >yourself (at least on the budget of mere mortals!) but perhaps it would be
  1386. >possible to protect yourself from the 'hobbyists' because the scariest
  1387. >thing is that these devices are not difficult to build.
  1388.  
  1389. Could you please describe briefly (or in detail if you have time :) how does
  1390. this device work? I wonder how they can pick up the radiation of a particular
  1391. computer from an office building with many identical pc-s.
  1392.  
  1393. Thanks
  1394. Zer0+
  1395.  
  1396. -----#3-------------------------------------------------
  1397. Subject: Security, Tempest, etc.
  1398.  
  1399. Writing o pubcly on the security issues may be considered by some readers
  1400. as a sure sign of ignorance. It is not true: one can longly discuss
  1401. generals issues without revealing his personal counter-measures and his
  1402. personal extent of knowledge and without misleading information.
  1403. Many books have been published on the issue, one of them: John Vacca,
  1404. "Internet Security", Copiright 1996 IDG Books Worldwide, Inc., English,
  1405. German and French versions, more than 900 pages. One can think that a
  1406. classified information is much better. It is not always true. For example,
  1407. Tempest topic. It is for a military personnel, which live in another
  1408. environment: they are disconnected from a o pubc network, have other
  1409. tools and hardware, free at their disposal. Those who are interested
  1410. in E/M computer radiations, should consult the "Spycatcher", a bestseller
  1411. forbidden in GB: it is related there how computer radiations from a
  1412. French Embassy were captured by spies. Those of us who are concerned
  1413. with the issue may try to pollute the E/M environement around the computer:
  1414. it would be much cheaper. If one plans an intrusion, he will search
  1415. for a weakest chainlet in the ring-mail protection. And the weakest
  1416. ring in our case, it seems to be phone lines, which we alone cannot
  1417. secure. The ideal would be a direct sattelite access through a narrow
  1418. beam. The first data to acquire for a planned attack would be a phone
  1419. number of your computer. It is relatively easy: one has only to consult
  1420. the Phone Directory of your region, your name should be there. Then your
  1421. computer should be on the same line, or very near. Many give willingly
  1422. (or are opubged to give) their phone number at certains Web sites.
  1423. If one fails to monitor your computer, he may try to distroy it
  1424. logically (by virii) or physically (virii attacking the hardware
  1425. by triggering certains devices, electrical discharges, vandalism,
  1426. robbery). Badly set security often gives contrary results: for example,
  1427. encrypting certain files or passages will guide the intruder directly
  1428. to the sensitive data, or reveal the persons with whom you exchange
  1429. that data.
  1430. Happy nice Easter holydays for everybody. The awaken Nature can teach
  1431. us a lot. The defensive approach is always cheaper and easier, than
  1432. offensive. AZ111.
  1433.  
  1434. -----#4-------------------------------------------------
  1435. Subject: help...
  1436.  
  1437. yo wuddup... im kind of a newbie here so could someone clear something up
  1438. for me?? whats the difference between WinIce and SoftIce...??? right now
  1439. I have SoftIce and the icon to the Loader prg is a little "A" looking
  1440. thing... so whats WinIce...??  I was reading this one tutorial in PDF
  1441. form and it told me to change a couple of things in the WinIce.dat in the
  1442. WinIce dir... i found WinIce.dat in my SIW95 folder... isnt that the
  1443. SoftIce folder?? I thought its supposed to be in the WinIce folder.... im
  1444. kinda confused...
  1445.  
  1446.  
  1447. A Totally Helpless Newbie,
  1448. TecH_bOi
  1449.  
  1450.  
  1451. There should be no JUNO tagg-line after this line... if there is text
  1452. that says something about JUNO then just dont pay attention to it...
  1453.  
  1454.  
  1455.  
  1456.  
  1457. =====End of Issue 190===================================
  1458.  
  1459.