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

  1. ========================================================
  2. +HCU Maillist          Issue: 171             03/21/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: "HELP the confused"
  12.  
  13. #2  Subject: A few things re: Int 3 and ntoskrnl
  14.  
  15. ARTICLES:
  16.  
  17. -----#1-------------------------------------------------
  18. Subject: "HELP the confused"
  19.  
  20. Hi, sorry to take up your time, but i am having a problem that i believe
  21. you may be able to help.
  22. I have installed softice 2.62 in dos, so that i can study and follow +Orc's
  23. tutorials but when i run a dos game(eg, pooldemo) and try to enter softice
  24. via hot key  "ctrl-D" i get a screen that is UN-READABLE consisting of
  25. funny characters and symbols.
  26. When i leave the game and try "ctrl-D" again i get the normal softice
  27. control panel(like normal), this type of occurrance happens for other games
  28. i try to crack aswell, also the same happens for softice 2.8 for dos.
  29.  
  30. Softice 2.62 is run outside of windows95, i 'm using the windows integrated
  31. dos7.
  32. my monitor is vga.
  33. Please..if you are aware of what i'm going on about, let me know how to
  34. correct this.
  35.  
  36. Thankyou for time and help.
  37. MDH
  38.  
  39.  
  40. -----#2-------------------------------------------------
  41. Subject: A few things re: Int 3 and ntoskrnl
  42.  
  43. Hello,
  44.  
  45. Just a few remarks regarding some recents posts.  First, a slight =
  46. correction to
  47. Stone's (as always) excellent and scholarly post concerning in memory =
  48. process
  49. modification.  At the end he writes,
  50.  
  51. >A last side note should be mentioned here. While I was doing this code I
  52. >encountered a bug in windows NT workstation 4.0 build 1381. It might
  53. >exist
  54. >on other versions too. Code inside windows looks like this:
  55. >mov eax, [offset of Context Storeing space in debugger code]
  56. >        ; this is obvioulsy a parameter
  57. >mov ebx, [Temporaly variable containing ring level of debugger]
  58. >test eax,ebx
  59. >jnz insuficient_security
  60. >everything Ok.
  61. >Obviously this is wrong. To overcome this bug make sure that the offset
  62. >where you store your context and'ed with 3 is 0.
  63.  
  64. I don't think that this is a bug.  My very deep suspicion is that it is =
  65. an
  66. alignment check.  If you look through winnt.h you see that the MIPS, PPC,=
  67.  and
  68. ALPHA CONTEXT structs require various alignments (either 8 or 16 bytes). =
  69.  x86s
  70. are not usually so picky about alignment, but in some places they are =
  71. (the prime
  72. example being the stack -- it's either 2 byte or 4 byte aligned depending=
  73.  on the
  74. processor mode).  winnt.h doesn't make any mention of alignment for x86 =
  75. context
  76. structs, but I have a dim memory of reading that they had to be somewhere=
  77.  (maybe
  78. in Pietrek?).  Given that these structs have some sort of deep connection=
  79.  with
  80. the processor architecture (sounds fancy doesn't it? -- maybe it's even =
  81. true),
  82. alignment might be necessary.  Stone, could you give me the address in =
  83. ntoskrnl
  84. where this check is (I didn't feel like searching for it :-)?  I'm =
  85. curious about
  86. it now.
  87.  
  88. Never mind, I found it.  Here's the code from ntoskrnl demonstrating that=
  89.  it's
  90. an alignment check.  Stone:  you should have SoftICE load the exports (or=
  91.  better
  92. the symbols) for ntoskrnl :-).
  93.  
  94. ; first put the desired alignment into ecx
  95. 801966E5 mov     ecx, 4
  96. ; now make sure we've got an address in ring3 space
  97. 801966EA mov     eax, MmUserProbeAddress ; 7FFF0000
  98. 801966EF mov     esi, [ebp+lpContext]
  99. 801966F2 cmp     eax, esi
  100. 801966F4 ja      short loc_801966FA
  101. 801966F6 mov     eax, [eax]
  102. 801966F8 jmp     short loc_801966FC
  103. ; some stuff
  104. 801966FA mov     eax, [esi]
  105. 801966FC mov     [ebp+var_28], eax
  106. 801966FF mov     edi, 0CCh ; size of CONTEXT struct
  107. 80196704 cmp     [ebp+var_19], 0
  108. 80196708 jz      short loc_8019672E
  109. 8019670A test    edi, edi
  110. 8019670C jz      short loc_8019672E
  111. ; here's the alignment check
  112. 8019670E dec     ecx
  113. 8019670F test    esi, ecx
  114. 80196711 jz      short loc_8019671A
  115. 80196713 call    ExRaiseDatatypeMisalignment ; Bingo !
  116.  
  117. So, the error here is not properly documenting the need for this =
  118. alignment.
  119.  
  120.  
  121. Regarding the SoftICE int 3 debate.  If SoftICE doesn't use int 3's =
  122. (opcode
  123. 0xCC) for regular bpx's, then how does it do them?  I take the answer to =
  124. be that
  125. it couldn't.  It couldn't use the debug registers and obviously doesn't. =
  126.  That
  127. leaves only int 1, which would be a bizarre and unnecessary choice.  =
  128. Further, I
  129. quote from the SoftICE Command Reference v3.0 for the command BPX:
  130.  
  131. If you try to set a BPX at an address that is in ROM, a breakpoint =
  132. register is
  133. automatically used for the breakpoint instead of the NORMAL PLACEMENT OF =
  134. AN INT
  135. 3 at the target address ... (p. 43).
  136.  
  137. I think this settles it.
  138.  
  139. Quine
  140.  
  141.  
  142. =====End of Issue 171===================================
  143.  
  144.  
  145.  
  146.  
  147. ========================================================
  148. +HCU Maillist          Issue: 172             03/22/1998 
  149. --------------------------------------------------------
  150. Send Articles To:......................... *************
  151. Info, Help, Unsubscription, etc:....... ****************
  152. Web Repository.........................hcuml.home.ml.org
  153. ========================================================
  154.  
  155. CONTENTS:
  156.  
  157. #1  Subject: Fwd: Re: IE 4 Bug (Crash with frames)
  158.  
  159. #2  Subject: re:HELP the confused
  160.  
  161. #3  Subject: API hooking again
  162.  
  163. ARTICLES:
  164.  
  165. -----#1-------------------------------------------------
  166. Subject: Fwd: Re: IE 4 Bug (Crash with frames)
  167.  
  168.  
  169. Hello HCUers, maybe this is interesting to some (all) of you. Fravia+ take
  170. a look if you don't know already...
  171. Have a nice day
  172.  
  173. Keep on
  174. Thor+
  175.  
  176.  
  177.  
  178. >Approved-By: **************
  179. >X-Mailer: ELM [version 2.4ME+ PL37 (25)]
  180. >Date:     Thu, 19 Mar 1998 11:14:01 -0800
  181. >Reply-To: System Administrator *************************
  182. >Sender: Bugtraq List **********************
  183. >From: System Administrator *************************
  184. >Subject:      Re: IE 4 Bug (Crash with frames)
  185. >X-To:         *************
  186. >To: ********************
  187. >
  188. >History records that Lloyd Vancil wrote:
  189. >> >I fust found a way to crash IE 4 using frames:
  190. >> >Make a file 'test.htm' with the following content
  191. >> >and view it with IE 4. Under Win95 IE 4 will
  192. >> >crash.
  193. >> >
  194. >> ><!--
  195. >> >
  196. >> ><HTML>
  197. >> ><HEAD>
  198. >> ><TITLE>IE 4 BUG</TITLE>
  199. >> ></HEAD>
  200. >> >
  201. >> ><FRAMESET ROWS = 50%,50%>
  202. >> >        <FRAME SRC = "test.htm">
  203. >> >        <FRAME SRC = "test.htm">
  204. >> ></FRAMESET>
  205. >> >
  206. >> ><BODY>
  207. >> >
  208. >> ></BODY>
  209. >> ></HTML>
  210. >> >
  211. >> >-->
  212. >> >
  213. >> >
  214. >> >Thomas Weidauer
  215. >>
  216. >> Kills Netscape Communicator on a mac too
  217. >> Naturalitch!  A forever loop in a web page....
  218. >> 3.01 on Solaris loads the page but any further load it dies.
  219. >>
  220. >> Why would you want to do this anyway?
  221. >
  222. >
  223. >I found that the loop is not necessary.  Name the page ie4test.html and
  224. >leave the frame links as test.htm (which need not exist), and it still
  225. >crashes IE4.  The entire content is inside a HTML comment anyway, so the
  226. >correct action for ANY browser is to treat the entire page as a no-op.
  227. >
  228. >
  229. >
  230. >--
  231. > Phil V. Stracchino | Personal opinions expressed by me do not represent
  232. > MIS Administrator  | official positions or policies of Cardima Inc.,
  233. > Cardima, Inc.      | unless so specified.  Similarly, support by me of
  234. > ***************    | any organization, platform or position does not
  235. > (510) 354-0123     | imply support or recognition thereof by Cardima Inc.
  236. Keep on
  237. Thor+
  238.  
  239. -----#2-------------------------------------------------
  240. Subject: re:HELP the confused
  241.  
  242. Hi, about getting a strange apperance of softice (dos versions). I had
  243. the same problem when I started. I found out that it was the graphic
  244. card that was causing the problem. I tried different graphic cards
  245. (luckily for me I knew the owner of a store) and found that S3 cards
  246. worked fine while I didn't have any luck with cirrus Logic cards. Almost
  247. all vesa graphic cards i tried worked fine also, the problem was mainly
  248. on PCI cards.
  249.  
  250. /+Indian_Trail
  251.  
  252. -----#3-------------------------------------------------
  253. Subject: API hooking again
  254.  
  255.  
  256.  
  257. I was poking around with API hooking the last few days and came
  258. up with a few ideas. While they are nowhere as advanced as Stone's,
  259. I thought they might be interesting none the less:
  260.  
  261. The main points we have to do while hooking an API function
  262. are getting our code into the process' address space and writing
  263. it's address to the reloc's in the RVA. 
  264. Since I am naturally lazy, I thought we might be able to have
  265. windows do that for us, assuming that we want to hook a function
  266. in a DLL which is NOT YET loaded into memory at all.
  267.  
  268. I simply replaced the original DLL with a self-created one, 
  269. renamed the original DLL to hooked.dll.
  270.  
  271. and exported functions with the same name... the following
  272. pseudo asm should explain it:
  273.  
  274. ..DATA  
  275.     hookedDLL      db 'hooked.dll',0
  276.     hookedHandle   dd ? 
  277.     function1Name  db 'ExportedFunction',0
  278.     func1Addr      dd ? 
  279.     ReturnAddr     dd ?
  280.     TempEBP        dd ?
  281.  
  282. ..CODE
  283. ExportedFunction PROC
  284.     
  285.     push eax
  286.     push ebp
  287.     mov  ebp, esp
  288.     mov  [TempEAX], eax
  289.     mov  eax, [ebp+08]
  290.     mov  [ReturnAddr], eax 
  291.     push ebx
  292.     push ecx
  293.     push edx
  294.     
  295.     push offset hookedDLL
  296.     call LoadLibraryA
  297.     mov  [hookedHandle], eax
  298.  
  299. ; the following part is not authentic, I am too tired right now
  300. ;  to look up the original order of the arguments for GetProcAddress
  301.     
  302.     push eax
  303.     push offset function1name
  304.     call GetProcAddress
  305. ;-----
  306.     mov  [func1Addr], eax
  307.     
  308.     pop  edx
  309.     pop  ecx
  310.     pop  ebx
  311.     pop  ebp
  312.     pop  eax
  313.     pop  eax ; Get rid of the addidtional return-to address on the
  314.              ; stack
  315.     mov  eax, [TempEAX]
  316.   
  317.     call dword ptr [func1Addr]
  318.     
  319.     push eax
  320.     push ebx
  321.     push ecx
  322.     push edx
  323.     push [hookedHandle]
  324.     call FreeLibrary
  325.     pop  edx
  326.     pop  ecx
  327.     pop  ebx
  328.     pop  eax
  329.     push [ReturnAddr]
  330.     ret     
  331. ExportedFunction ENDP     
  332.  
  333. This has to be repeated for ALL exported functions of course :-)
  334.  
  335. So what I'm doing is the following (please point out any mistakes
  336. in the above ASM listing, but I don't know whether they are in the
  337. original code, I am writing this out of my head):
  338.    - Save all registers
  339.    - Save original return-to address
  340.    - Load the original library
  341.    - Find the right Address for the particular function
  342.    - get rid of the extra return-to address on the stack   
  343.    - restore registers
  344.    - call the Address we just got
  345.    - decrease the reference count by one
  346.    - push the saved return-to address
  347.    - ret
  348.  
  349. IMO this should work, even though it is awfully slow due to the
  350. loading of the dll from the HD.
  351. Unfortunately, it doesn't work :-(, it never gets past the execution
  352. of more than 1 call ... then I get the whole junkload of PageFault/
  353. GPF's in nice 1-2 combinations ;-)
  354. I haven't toyed around with it more extensively, but it might be 
  355. a good idea to save the flags register as well as si/di...well, 
  356. I dunno... gotta play around with it some more.
  357.  
  358. I do know that this way of hooking API has (if it works at all)
  359. many drawbacks (DLL won't pass self-checks, slowdown etc.) but
  360. I just wanted to know whether it is possible to hook it this way :-)
  361.  
  362. One way to get by the major drawback would be never to let the 
  363. reference count for the dll drop to zero until the program is fully
  364. executed, this way the HD reading would fall away... 
  365. I don't know whether there are functions to look at the reference 
  366. count of a particular DLL, gotta check that some time tomorrow (yawn)
  367.  
  368. This way of hooking could btw easily be used to generate an automatic
  369. DLL-hooker (smirk) which can inject whatever code you like into your
  370. fake DLL, for example a messagebox with the functionname and the param's 
  371. on the stack... a cheap & easy spy for unknown API's... 
  372.  
  373. Well, I'm goin to sleep, sorry for all the typos, and please tell me
  374. what you think about all this and whether you got any ideas why it's 
  375. not workin yet... 
  376. (yawn again)
  377.  
  378. HalVar
  379. P.S.: If you think this method is Bullsh*t, dirty & unelegant, you're 
  380. probably right... plz let me know nonetheless :-)
  381.  
  382.  
  383. ______________________________________________________
  384. Get Your Private, Free Email at **********************
  385.  
  386. =====End of Issue 172===================================
  387.  
  388.  
  389.  
  390.  
  391. ========================================================
  392. +HCU Maillist          Issue: 173             03/23/1998 
  393. --------------------------------------------------------
  394. Send Articles To:......................... *************
  395. Info, Help, Unsubscription, etc:....... ****************
  396. Web Repository.........................hcuml.home.ml.org
  397. ========================================================
  398.  
  399. CONTENTS:
  400.  
  401. #1  Subject: Re: +HCU ML Issue 170
  402.  
  403. #2  Subject: Crippled protection help
  404.  
  405. #3  Subject: CCh
  406.  
  407. #4  Subject: Re: Api-hooking again
  408.  
  409. ARTICLES:
  410.  
  411. -----#1-------------------------------------------------
  412. Subject: Re: +HCU ML Issue 170
  413.  
  414.  
  415.  
  416. >Hmmm, int 9 ? it does not read keyboard through int x16 or
  417. >reading/writing directly to the hardware port ?
  418.  
  419. It does read/write directly to the hardware port, but does this
  420. in a hooked interrupt. 0000:0024 points to the new keyboard handler.
  421. This seems to be quite common in many old Dos games...
  422.  
  423. >anyway, about the brpt. above i think you better set an execution
  424. >breakpoint on the contents of vector 9, i mean *(24h).
  425.  
  426. It is no problem to put a bpx directly on the first instruction
  427. of the keyboard handler, but it doesn't return to the address from
  428. where it's called apparently... the code which the return address 
  429. on the stack points to doesn't really make sense, and the prog pushes
  430. a new ret address... I have to look at it again tomorrow, the last
  431. two days I tinkered with stuff that won't work ... ;-) and now I'm
  432. frustraded with Win, I'll go back to Dos once more, to relax :-)
  433.  
  434.  
  435. HalVar
  436.  
  437. ______________________________________________________
  438. Get Your Private, Free Email at **********************
  439.  
  440. -----#2-------------------------------------------------
  441. Subject: Crippled protection help
  442.  
  443. hi i have never write to this list b4 but i think it was time.
  444.  
  445. i am trying to crack Font Lab is a Save dissabled protection. 
  446. i mostly do Serials and Time limits and such i almost never done a 
  447. crippled b4. i need some help on this one, if i do Save As..
  448. the save as dialog opnes after i chosse a name the nag box pops up 
  449. telling me that this is just a demo i tried back tracing to see where 
  450. does it check if it's a demo or not, my teory is that it can be cracked 
  451. because it opens the Save As.. dialog but i migth be wrong,
  452. please help any suggestions will be apreciated. Thanks.
  453.  
  454. P.S. i don't know if this program has been cracked b4 i just want to do 
  455. it for the learning of it.
  456.  
  457. P.S.S. Excuse my English.
  458.  
  459. nIabI
  460.  
  461. ______________________________________________________
  462. Get Your Private, Free Email at **********************
  463.  
  464. -----#3-------------------------------------------------
  465. Subject: CCh
  466.  
  467. I had a look through the SICE 3.22 u/g and found this:
  468.  
  469. "Execution Breakpoints: SoftICE replaces an existing instruction with INT
  470. 3. You can use the BPX command to set execution breakpoints."
  471.  
  472. So I assume that SICE/95 will trip on stepping over the call in my test
  473. program. But what about SICE/DOS? Has anyone else tried it? Is there a bug
  474. in my program?
  475.  
  476. ~~
  477. Ghiribizzo
  478.  
  479. -----#4-------------------------------------------------
  480. Subject: Re: Api-hooking again
  481.  
  482. The idea with renaming the original DLL and making a new one that would
  483. call this renamed one is indeed an old idea. Microsoft infact released
  484. such source code for kernel32.dll in their SDK. This method obviously has
  485. it's right because atleast for the case of kernel32.dll the work is done
  486. and the method more generally applies than the method I have previously
  487. promoted on this list. Halvar even though your code might be buggy at this
  488. point - do carry on with it - MS made it work.. so can you.
  489.  
  490. As Halvar points out or atleast touches upon this method will get very
  491. cumbersome for big DLL's. For small DLL's that often house copyprotection
  492. routines I believe that a method of replacing DLL's and possibly chaining
  493. original functions in this manner will prove itself to be a better
  494. approach. 
  495.  
  496. As for reloc problems a simple way of countering this is the
  497. "delta-offset" technique. Obviously it's easier if Windows can handle it
  498. for you  but hey. There is no need to get hung up on windows all the time.
  499.  
  500. An approach that might turn out to be even better than this one would be
  501. appending code and moving the entrypoint (as wrappers do) and then change
  502. the chunkRVA of the imported function. This way you do not come to rely on
  503. the debugapi. Downside is that it's vounerable to CRC's unlike the debug
  504. approach. 
  505.  
  506. The debug approach is a large weapon and as with all large weapons they
  507. should be considered with great care. The methods outline above and
  508. Halvar's approach might be considerered before venturing into big guns :).
  509.  
  510. A kind thanks to Quine for verifying my soft-ice intution/tests with
  511. actually consulting a manual. Also Quine is obviously right about my "bug"
  512. being a alignment check - as for his guessing to the reason for such a
  513. check, I believe he is wrong. I will get back to this.
  514.  
  515. Crack your OS!
  516.  
  517. Stone / United Cracking Force '98 
  518.  
  519.  
  520. =====End of Issue 173===================================
  521.  
  522.  
  523.  
  524.  
  525. ========================================================
  526. +HCU Maillist          Issue: 174             03/24/1998 
  527. --------------------------------------------------------
  528. Send Articles To:......................... *************
  529. Info, Help, Unsubscription, etc:....... ****************
  530. Web Repository.........................hcuml.home.ml.org
  531. ========================================================
  532.  
  533. CONTENTS:
  534.  
  535. #1  Subject: Personal Firewall
  536.  
  537. #2  Subject: OpenNT
  538.  
  539. #3  Subject: privacy
  540.  
  541. #4  Subject: Help needed with Pro Motion 3.0
  542.  
  543. #5  Subject: gthorne with a fun dns trick
  544.  
  545. #6  Subject: pcbdemo  ***sigh*** again
  546.  
  547. ARTICLES:
  548.  
  549. -----#1-------------------------------------------------
  550. Subject: Personal Firewall
  551.  
  552. Hello Everyone
  553.  
  554. I have downloaded a personal Firewall program, PCSECURE V1.1 
  555. at **********************
  556.  
  557. Iam interested in some comments on the subject of Firewalls.
  558.  
  559. 1.A waste of time having a personal Firewall program, like this?
  560.  
  561. 2.Firewalls are not very effective under Windows95 operating system?
  562.  
  563. 3.There is no real protection with Firewalls, all can be hacked?
  564.  
  565. cheers Rundus
  566.  
  567.  
  568. ______________________________________________________
  569. Get Your Private, Free Email at **********************
  570.  
  571. -----#2-------------------------------------------------
  572. Subject: OpenNT
  573.  
  574. Hi,
  575. I recently have got the OpenNT 2.1 demo and read about the way how 
  576. chown had done a key-generator for OpenNT 2.0. The bad thing is now 
  577. that for OpenNT 2.1 this won't work as fine as for OpenNT 2.0. The 
  578. keys seem to have to fullfill an other property to be valid.
  579.  
  580. I have tried to hack it now for some days and really can't imagine 
  581. what I should do now. Is there someone out there who might can have a 
  582. look at it and give me a short tip how to continue?
  583.  
  584. Thanks M
  585.  
  586. -----#3-------------------------------------------------
  587. Subject: privacy
  588.  
  589. IS THERE ANY MAILING-LIST ABOUT PRIVACY AND ANONYMOUS ON NET SUBJECT?
  590. I DONT KNOW IF SOMEONE POSTED SOMETHING ABOUT THAT,BUT I TAKE ALL NFO 
  591. ABOUT THAT,TELNET,FTP,WWW ANONYMITY.
  592. THANX
  593.  
  594. ______________________________________________________
  595. Get Your Private, Free Email at **********************
  596.  
  597. -----#4-------------------------------------------------
  598. Subject: Help needed with Pro Motion 3.0
  599.  
  600. Hello, I've been working on Pro Motion 3.0 available from
  601. *******************  (1 MB), and I need some help. Pro Motion is a
  602. paint/animation package wich is very easy to use, even  I succeeded to
  603. draw some cool images. The program is cripped and the disabled functions
  604. are:
  605.  
  606. User cannot copy image or brush to clipboard.
  607. User can only save images as .ico files
  608.  
  609. Trying to do anything of the above will result in a messagebox informing
  610. you that it is a demo. Great I thought when I saw the messagebox hoping
  611. I had found a place to enter. 
  612. I traced the code and found that the code below is alwas executed
  613. everytime the user selects something from a menu.
  614.  
  615.  
  616. :00411A4C E88FFFFFFF              call 004119E0    
  617. :00411A51 85C0                    test eax, eax
  618. :00411A53 7407                    je 00411A5C
  619. :00411A55 8B10                    mov edx, dword ptr [eax]
  620. :00411A57 FF522C                  call [edx+2C]         Edx+2c = 411714
  621.                     |
  622.                     |
  623. :00411714 80782900                cmp byte ptr [eax+29], 00
  624. :00411718 741A                    je 00411734
  625. :0041171A 6683B89200000000        cmp word ptr [eax+00000092], 0000
  626. :00411722 7410                    je 00411734
  627. :00411724 8BC8                    mov ecx, eax
  628. :00411726 8BD0                    mov edx, eax
  629. :00411728 8B8194000000            mov eax, dword ptr [ecx+00000094]
  630. :0041172E FF9190000000            call dword ptr [ecx+00000090]
  631.  
  632. The call 004119E0 returns with an adress in EAX wich is used at 41172E
  633. where we are calling the routine stored at [ecx+90]. The adress at
  634. [Ecx+90] is written only on start up, so if we change it we will keep
  635. the change until we exit the program. The call at 41172E is the caller
  636. to the different routines, we always get here wether we selected 'new',
  637. 'edit palette' or 'copy frame to clipboard'. I traced the top caller
  638. (call 004119E0) but didn't find any suspicious compares or alternative
  639. paths. My guess is that the programmer replaced the correct adress with
  640. the adress to the error routine. 
  641. In the dissassembled listing I found that there was a routine wich calls
  642. the below API's.
  643.  
  644. Openclipboard
  645. openclipboard
  646. EmptyClipboard
  647. SetClipboardData
  648. SetClipboardData
  649. CloseClipboard
  650.  
  651. This looks like the API's that can be used to copy a bitmap to the
  652. clipboard. But when I redirect the program to that routine the program
  653. crashes. The crash takes place inside a call that's between
  654. Emptyclipboard and SetclipboardData. It seems that the crashing call is
  655. supposed to get the parameters for SetClipboardData. The call is base
  656. indirect adress = Call [ebx+48].
  657.  
  658. The save problem:
  659. Pro Motion opens up a save dialogue by calling GetOpenFileName. The
  660. following formats are available in that dialogue:
  661.  
  662. PCX                    1
  663. Deluxe Paint Image *.iff *.lbm        2
  664. BMP                    3
  665. ICO                    4
  666. GIF                    5
  667.  
  668. Each of them are given a value from one to five. Then the program checks
  669. that value and different parts of the code is executed depening on the
  670. value. Only value four leads to CreateFile and Writefile. I can choose
  671. save as BMP and then in softice change value three to four. That will
  672. result in a file called xxxbmp.ico. I think this is pretty odd because
  673. if only the code for ico files are available there would be no need to
  674. check if the user has chosen any other format. Also the fact that each
  675. format has his own error routine is suspicious.  Also one animation
  676. format is disabled.
  677.  
  678. I have no experience (yet) in programming Windows, so I can't add the
  679. code I need. Though I believe that would be the easiest approach. I've
  680. also looked for a crack but there seem that no one has cracked it yet. I
  681. think it possible to unlock this program, but how is mystery.  
  682.  
  683. If anyone has the time to help me or have any tips I'd be most grateful
  684. Thanxz
  685. /+Indian_Tral
  686.  
  687. -----#5-------------------------------------------------
  688. Subject: gthorne with a fun dns trick
  689.  
  690. Message Body = 
  691.  
  692. if you dont know this one, try it:
  693.  
  694. warez.phantom.com
  695.  
  696. try nslookup on it... 
  697. in my opinion someone at internic had a sense of humour
  698.  
  699. +gthorne
  700.  
  701.  
  702. -----#6-------------------------------------------------
  703. Subject: pcbdemo  ***sigh*** again
  704.  
  705. Hi every1...
  706. I am still trying to get this program to print with no real success.  I have
  707. patched it so that now when you click "print" on any curcuit board file, it
  708. will bring up a messagebox saying "printing.." and the printer will feed in
  709. paper but it still wont print anything on the paper, though the printhead
  710. moves...
  711.  
  712. Spyder, did you get it to print any file with no problems? I would
  713. appreciate it if you could tell me where to patch it, so I may see the light
  714. & move on.....
  715.  
  716. BTW.. the other 2 patches I made to get it to "nearly print" were:
  717. 0001.9202      jmp 9D4B    <--- changed to NOP
  718. 0001.920B     jmp 9D4B     <--- changed to NOP
  719.  
  720. along with the first 2 patches I made...
  721.  
  722. [ I must be sounding pretty dopey by now.. :)  ]
  723.  
  724. cheers,
  725. HaQue
  726.  
  727.  
  728.  
  729. =====End of Issue 174===================================
  730.  
  731.  
  732.  
  733.  
  734. ========================================================
  735. +HCU Maillist          Issue: 175             03/25/1998 
  736. --------------------------------------------------------
  737. Send Articles To:......................... *************
  738. Info, Help, Unsubscription, etc:....... ****************
  739. Web Repository.........................hcuml.home.ml.org
  740. ========================================================
  741.  
  742. CONTENTS:
  743.  
  744. #1  Subject: Privacy, ICQ
  745.  
  746. #2  Subject: re: pcbdemo  ***sigh*** again
  747.  
  748. #3  Subject: re:personal firewall
  749.  
  750. ARTICLES:
  751.  
  752. -----#1-------------------------------------------------
  753. Subject: Privacy, ICQ
  754.  
  755. Good evening to all.
  756. I wrote the other day to ask if anybody used the Junkbuster proxy. So 
  757. far no replies apart from Ghir... who mentioned some points about 
  758. Fravia's anonymity pages.
  759. A long time ago, someone wrote about ICQ and its possible uses. One 
  760. great draw back with ICQ is that it shows your current IP to everybody. 
  761. This might scare some people off. I have set it up using Junkbuster as a 
  762. local proxy i.e localhost. The IP address of localhost is usually 
  763. 127.0.0.1 on all machines, and this is what shows in the ICQ information 
  764. screen. I don't know if this would make it impossible to carry out file 
  765. transfers, but chat should work because I believe that the identity is 
  766. resolved with the ICQ number and not the IP address. Would this make ICQ 
  767. chat completely anonymous? Any thoughts or more information would be 
  768. most welcome.
  769. Regards,
  770. Zipper49
  771.  
  772. ______________________________________________________
  773. Get Your Private, Free Email at **********************
  774.  
  775. -----#2-------------------------------------------------
  776. Subject: re: pcbdemo  ***sigh*** again
  777.  
  778.  
  779. >I am still trying to get this program to print
  780. >with no real success.  I have patched it so that
  781. >now when you click "print" on any curcuit board >file, it will bring up a messagebox saying
  782. >"printing.." and the printer will feed in
  783. >paper but it still wont print anything on the
  784. >paper, though the printhead moves...
  785.  
  786. That does sound rather strange, maybe it's a bug
  787. <grin>. 
  788.  
  789. >Spyder, did you get it to print any file with no
  790. >problems? I would appreciate it if you could
  791. >tell me where to patch it, so I may see the
  792. >light & move on.....
  793.  
  794. I didn't mess with it much but I did print
  795. modified versions of the demo PCBs to winfax
  796. (to save trees) and saw complete images. 
  797.  
  798. patches with .exe file offsets follow, please do
  799. figure out what they do (I can't remember myself
  800. anymore).  
  801.  
  802. 0000990C: 74 90
  803. 0000990D: 09 90
  804. 0000991B: E9 90
  805. 0000991C: 3D 90
  806. 0000991D: 0B 90
  807. 0000A1F6: 74 90
  808. 0000A1F7: 09 90
  809. 0000A205: E9 90
  810. 0000A206: 0E 90
  811. 0000A207: 01 90
  812. 00014FBD: 68 EB
  813. 00014FBE: 11 EE
  814. 00015981: 68 EB
  815. 00015982: 11 EF
  816.  
  817. I didn't look much at the program, but if you
  818. really want to layout your own PCBs there are
  819. better programs for free (easytrax is one, DOS
  820. based but more capable).
  821.  
  822. Sypder...
  823.  
  824.  
  825. -----#3-------------------------------------------------
  826. Subject: re:personal firewall
  827.  
  828. greetings all,
  829. I am not an expert on firewalls however I have downloaded pc-secure and
  830. have been using it for awhile.It seems to be the best of the lot I've
  831. tried so far and protects resonably well as well as providing a pop-up
  832. window for all new incoming connection attempts.However there are two
  833. points about firewalls that I do know,it is relatively easy for someone
  834. with a linux box to spoof the address of a ip that the firewall
  835. trusts(easy to find one if they frequent irc or such)and standard ping
  836. is allowed thru unless explicitly turned off so you have two weaknesses
  837. there.I remember an exploit I beleive was on fydoors page (not
  838. sure,maybe in phrack) in which data could be sent along with ping to
  839. comprimise the system.I'm sure there are plenty more I don't know at
  840. this time but if you'd like to we can play around with it and see what
  841. we can come up with.
  842. Cheers,Warlord
  843.  
  844.  
  845. =====End of Issue 175===================================
  846.  
  847.  
  848.  
  849.  
  850. ========================================================
  851. +HCU Maillist          Issue: 176             03/26/1998 
  852. --------------------------------------------------------
  853. Send Articles To:......................... *************
  854. Info, Help, Unsubscription, etc:....... ****************
  855. Web Repository.........................hcuml.home.ml.org
  856. ========================================================
  857.  
  858. CONTENTS:
  859.  
  860. #1  Subject: gthorne - on icq, spoofing, and how they track you
  861.  
  862. #2  Subject: ICQ
  863.  
  864. #3  Subject: primitives
  865.  
  866. #4  Subject: primitives
  867.  
  868. #5  Subject: GetThreadContext alignement revisited & beta of final part of In memory patching..
  869.  
  870. ARTICLES:
  871.  
  872. -----#1-------------------------------------------------
  873. Subject: gthorne - on icq, spoofing, and how they track you
  874.  
  875. Message Body = 
  876.  
  877. first of all i want to mention that newer versions of icq allow you to hide your ip from the other end - but it is a direct network app, so like i said in a previous message - the computer must know the ip it is connecting to, and just because icq allows you to check a box removing the ip from the other person's 'viewscreen' --- it is still available to you since it is in your machine's memory
  878.  
  879. it is therefore like any other networking app
  880.  
  881. my next topic is what can be spoofed in win95 or other os's
  882.  
  883. first i will recall the previous postings and mention that it is possible to fool a remote machine completely with linux what your ip is
  884. in win98, it requires that you have control over the dns server, so you have to be a hacker to spoof or run your own dns server
  885. win95 can only alter your ident (see the little spoof app in netwar on my site - also called eye-dent for those of you who have it)
  886. which is not much protection at all since your ip is till the same
  887.  
  888. well enough about what has already been said... here are a few points most people don't think about
  889.  
  890. what IS able to be spoofed is JAVA (and therefore javascript)
  891.  
  892. how do i know? i do it.
  893.  
  894. what i mean by this is that a foreign machine knows your ip implicitly (as i said about icq) and on a server, the remote server has some environment variable accessible from perl to track you
  895. these are: $HTTP_REFERER, $HTTP_USER_AGENT, $REMOTE_ADDR (which usually is the same as $REMOTE_HOST), $REMOTE_IDENT, and $REMOTE_USER
  896.  
  897. some of these you will recall from fravia's site as being the same baic ones in javascript - and so they are, webserver variables arent entirely alien to the web client variables
  898. so check there for explanations
  899.  
  900. note that i do not cover cookies here - but all they can track us number of your accesses to a site or what data you type in directly (and of course any of these user variables)
  901.  
  902. $REMOTE_ADDR ($REMOTE_HOST) is your ip - and as i said it is truly known to the other machine - or you have no network connection
  903. linux boxes can fool this since the spoof technique uses its own way to access the net - let me just leave it at that, the details are kind of complicated
  904.  
  905. java (and therefore javascript which calls java to get your ip) relies on what your machine reports its ip to be
  906. since it loads from your pc, that is the data it knows to check
  907.  
  908. if you are on a lan where all machines are set an ip that is permanent, and all machines interact with eachother and the internet, this is the same as the remote ip
  909.  
  910. what i need to point out however, is that on my own machine setup, i have a intranet ip and a separate internet ip
  911. this is due to the fact that my intranet has a standard tcp schema with permanent ip addresses to identify itself to other machines in the intranet (i can use any ip... even one used by someone else on the internet to identify myself.. since it is not an internet dns needed to resolve my ip at all)
  912. this can be set simply in the permanent networking properties of your win95 control panel under tcp/ip network properties if you have installed the microsoft tcp/ip protocol
  913.  
  914. when i dial up to the net of course, i have a dynamic internet ip assigned by my provider. dynamic being great because it changes, and is kind of hard to track on a many-user system who really dialed that ip address (and in safety for yourself make sure to have a private line or dial *67, before the call so normal people cant *69 and track you while you are online and using the phoneline - fbi can still track you dont be too comfortable)
  915. therefore my machine has 2 ip addresses... one for the internet and one for the intranet
  916.  
  917. to make a long story come to a close, the machine on the other end knows your true ip so without a deep method of spoofing, you cannot cover this
  918. java, however, reports your intranet ip - so sites that record your ip data based on java or javascript, get what you tell them is your ip
  919.  
  920. since i wrote this much i will probably miror this in refined form on my website in the netwar section
  921.  
  922. do take care, and i hope this answers alot of questions that have been asked before
  923.  
  924. +gthorne
  925.  
  926.  
  927. -----#2-------------------------------------------------
  928. Subject: ICQ
  929.  
  930. I'm currently trying out ICQ. There is an option to withhold your IP
  931. address within setup. As I'm new to ICQ, there's not much I can tell you
  932. apart from it's a good idea to setup a 'fake' ICQ to test it out. Maybe
  933. there's information about how it all works (perhaps similar to the RFC fro
  934. IRC) which may reveal security loopholes for us to exploit and watch out
  935. for. However, I get the impression it's just being run by one company
  936. (though I may be wrong) and therefore, the information may be harder to
  937. come by. But you should have a look and a play around with it. Perhaps
  938. you'll get all the answers you want.
  939.  
  940. Warlord mentions some security holes. One I've seen (perhaps not the one he
  941. is referring to) is on the Amiga. In one of the most commonly used
  942. packages, the ping command has some undocumented features which allows you
  943. to send commands to the receiving computer. A friend of mine received such
  944. a ping - luckily for him, he had his Amiga's format command independently
  945. protected. Needless to say, he changed some of the default settings...
  946.  
  947. ~~
  948. Ghiribizzo
  949.  
  950.  
  951. -----#3-------------------------------------------------
  952. Subject: primitives
  953.  
  954. In lesson 3.1 Master +Orc indicated that many of the protection schemes 
  955. are derived from the twelve primatives. One of these was referred to in 
  956. this lesson. Being reasonably new to the game I thought that these would 
  957. be an excellent place to study. Can anybody help with the identity of 
  958. the other 11?
  959.  
  960. Regards
  961. Vrax
  962.  
  963. ______________________________________________________
  964. Get Your Private, Free Email at **********************
  965.  
  966. -----#4-------------------------------------------------
  967. Subject: primitives
  968.  
  969. In lesson 3.1 Master +Orc indicated that many of the protection schemes 
  970. are derived from the twelve primatives. One of these was referred to in 
  971. this lesson. Being reasonably new to the game I thought that these would 
  972. be an excellent place to study. Can anybody help with the identity of 
  973. the other 11?
  974.  
  975. Regards
  976. Vrax
  977.  
  978. ______________________________________________________
  979. Get Your Private, Free Email at **********************
  980.  
  981. -----#5-------------------------------------------------
  982. Subject: GetThreadContext alignement revisited & beta of final part of In memory patching..
  983.  
  984. I'll probably bore the shit out of most of you since this will tend
  985. towards the advanced and since it's not of any practical importance..
  986.  
  987. Quine suggested that my "bug" in NT was due to an alignment problem and
  988. indeed Quine was right. The reason for this alignment he suggested had
  989. something to do with the processor. I'm suspisious of the correctness of
  990. this suggestion. Let me however start somewhere else. 
  991.  
  992. Quine brings out the stack as an example of something on the x86'er that
  993. has to be aligned. I disagree. Obviously the "size" instructions push
  994. and pop instructions is aligned but nothing hinders you from having a
  995. stack pointer that has a skew number. E.g. you can do:
  996. dec esp
  997. push eax
  998. pop eax
  999. inc esp
  1000. and the like as much as you want. The point is that the address of the
  1001. ESP need not be aligned and that the PUSH/POP is of fixed size is the
  1002. same point as saying that the DEC instruction is aligned. This ofcause
  1003. has no meaning in terms of why the Context structure needs to be
  1004. aligned.. 
  1005.  
  1006. Let us plunge deeper into the problem. My childhood knowledge leed me to
  1007. believe that the x86'er does not store the contexts of suspended threads
  1008. in registers. This would simply use too much space in the processor.
  1009. Instead it stores it in ordinary ram - just imagine 200 threads with
  1010. each a context of cch bytes. For the sake of the argument I looked up
  1011. how windows 95 processes these suspended threads contexts. Indeed
  1012. windows has the context of a thread stored in memory - not only once,
  1013. but twice. Once  inside ring 0 and once in a kernel32 heap (ring 3). Now
  1014. that the ram-address where this context is stored during suspension of
  1015. the thread needs to be aligned does not sound too horrible. What puzzles
  1016. me is why we need to align an address in order to get a copy of it? That
  1017. we do is no mystery thanks to Quine. But why? Investigating a little
  1018. further I found that infact what windows NT does is to make a copy of
  1019. it's stored thread context. And puzzleling is that the instructions used
  1020. is rep movsb & rep movsd (for speed reasons done in two "sets"). Why on
  1021. earth would anybody require the destination for such instructions to be
  1022. aligned? Welps..I'm really puzzled. My only suggestions is that it
  1023. aligns because these functions of int 2eh is also used by kernel32 and
  1024. kernel32 leaves it to these function to allocate heap space - which if
  1025. I'm not entirely off is aligned to size 4. Or that it's simply a sign of
  1026. that MS used the same C code for multiple platforms....... It'd be nice
  1027. if somebody where to debug windows 95 to find out what it actually does.
  1028. My windows 95 is no longer running I debugged it into swiss cheese.. :)
  1029.  
  1030. And to something entirely different. As promised I've written a beta
  1031. edition of my last part of the "in memory patching" essay/doc. Fravia:
  1032. Please don't publish it on your page yet. I'll have the final version
  1033. done by this time next week provided I get feedback. Anyways because of
  1034. the great feedback I got last time I released a beta here.. I again
  1035. release my beta here hoping that ya'll will tell me how to make it
  1036. better..
  1037.  
  1038. Happy reading!
  1039.  
  1040. ----- DOC START
  1041. The MessageHook Approach
  1042. I'll skip relatively lightly over the in-depth technical issues of this
  1043. method.
  1044. It is simply far beyond this text to go into it. Maybe someday I'll
  1045. write a
  1046. book or something :) sorry.. 
  1047.  
  1048. The above method has it's advantages - and disadvantages. It's
  1049. cumbersome.
  1050. Indeed in many instances access to foreign addressing spaces can be
  1051. gained
  1052. easier. I will now examine one such method. The method was first
  1053. described
  1054. in MSJ 1994. I first noticed the potency of this method examing Grudge's
  1055. crack 
  1056. for SubSpace. My sourcecodes and approach as such bares many
  1057. resemblances with
  1058. Grudge's initial work.
  1059.  
  1060. Most likely you've all encountered Windows Messageing system at one
  1061. point or
  1062. another. Breakpoints on "BMSG", HWND command in Winice is indeed
  1063. breakpoints
  1064. on messages and list possible recievers of messages. The whole idea
  1065. behind
  1066. messages goes back to the fact that we have a multitasking operating
  1067. system.
  1068. Several tasks needs to share equipment that can only be used by one at
  1069. the time.
  1070. The obvious example is the mouse - the user will have only ONE mouse
  1071. total, not
  1072. one for each thread. Another is the keyboard, keyboard input is often
  1073. ment for 
  1074. only one of the running threads. A total breakdown of the windows
  1075. messageing
  1076. and windowing system is far far beyound the scope of this small text.
  1077. It'll 
  1078. suffice to say that any window made by any thread in any process is
  1079. controlled
  1080. thru messages from the windows operating system.
  1081.  
  1082. Again we'll exploit that Windows is an overbloated operating system - or
  1083. well
  1084. as I would rather put it - a very potently equipped OS. The feature
  1085. we'll be 
  1086. exploiting here is that of a Hook in the message system. For many
  1087. reasons 
  1088. Microsoft decieded that even at ring 3 people should be able to
  1089. intercept 
  1090. messages send to windows. Because they wanted this hook to be usuable
  1091. for 
  1092. Computer Based Training they decieded that a hook would be no good if it
  1093. did
  1094. not have direct access to the addressing space of the process belonging
  1095. to the
  1096. thread it captured a message for. So they decieded that a
  1097. MessageHookHandling 
  1098. procedure should be loaded into any process-space in which it captured a
  1099. message. 
  1100. Further developers must've felt generous the day they designed this.
  1101. They 
  1102. allowed a hook not just to one process - but to all! 
  1103.  
  1104. Let's get a bit more technical on this. The API that installs the hook
  1105. is:
  1106. User32!SetWindowsHookExA
  1107.  
  1108. The first problem about using this API to hook windows messages globally
  1109. is
  1110. the way it gain access to the address space of the thread which it
  1111. intercepted
  1112. a message to. To get real deep on this issue is again far beyound the
  1113. scope
  1114. of this text, but it has to do with how modules is mapped in pages thru
  1115. out
  1116. the various memory contexts (Process addressing spaces). 
  1117. The result is that you cannot have the hook within the EXE file that
  1118. installs 
  1119. the hook - rather you need to have it in a DLL.
  1120.  
  1121. In other words we start out by loading the DLL in which we have our
  1122. hook, then
  1123. find the address of our hook procedure in it and feed this to
  1124. SetWindowsHookExA.
  1125.  
  1126. The next problem we encounter is that of designing a MessageHandler.
  1127. Since a
  1128. LOT of messages is send out to windows system wide all the time it's
  1129. important
  1130. that we design our routine to be relatively fast or we'll be slowing the
  1131. system.
  1132. The easist way of doing this is only acting upon messages of a specific
  1133. type.
  1134. Choosing type depends on how you wish to time your patch. You can in
  1135. this way
  1136. time it to hit on keyboard activity in a window, mouse activity, windows
  1137. being
  1138. put to background and so on so forth. I've choosen the real simple one 
  1139. <insert here> which is among other things always called upon creating a
  1140. window.
  1141. This allows me to patch right after the "main" window of the program is
  1142. created.
  1143. Obviously I might end up patching more than once since this message type
  1144. can be
  1145. send many times.
  1146.  
  1147. The next problem is that we need to hinder that we patch all processes.
  1148. Again
  1149. I abuse the concept of modules. By getting the current module filename
  1150. and 
  1151. compareing it to the filename of the file we desire to patch I can
  1152. identify 
  1153. weather this message was send to the target or to another program
  1154. windows.
  1155.  
  1156. And the last problem is ofcause that we cannot keep messages from the
  1157. target's
  1158. windows and expect it to perform like it's supposed to. What we do is
  1159. that we
  1160. chain other possible hooks using the neatly provided API:
  1161. user32!CallNextHookEx
  1162.  
  1163. One final things is worth noting Exiting the process who "owns" the hook
  1164. will
  1165. destroy it - in other words we cannot shut down until we're sure we've
  1166. patched
  1167. the program and we cannot shut down if need multiple patches (as
  1168. patching
  1169. e.g. kernel32.dll (which is a bad idea anyway) would require. The good
  1170. thing
  1171. about it is that we can simply call ExitProcess when we're done and
  1172. windows
  1173. will take down the hook for us with no further adue... Pretty clever MS!
  1174.  
  1175. Since we in the hook-procedure have direct access to the addressing
  1176. space
  1177. of the target process we wouldn't need to use WriteProcessMemory,
  1178. however 
  1179. it's a very good idea to do so. First and foremost WPM as described
  1180. earlier
  1181. overrides pageprotection. Second and also important - there is a
  1182. difference
  1183. in how pages in a process is handled between Windows 95 and Windows NT.
  1184. If
  1185. you patch a program's pages in Win NT (if it's not shared) it'll be
  1186. copied
  1187. and then the copy will be patched - thus the patch will not affect other
  1188. processes utillizing the same module. In windows 95 this is not so.
  1189. However
  1190. WriteProcessMemory in Windows 95 has build in this mechanism ensuring
  1191. that
  1192. if you use WriteProcessMemory you'll not suffer differences between NT
  1193. and
  1194. 95. (This is not true if you patch above the 2g limit - which I btw
  1195. cannot
  1196. see why you'd do)
  1197.  
  1198. Here at the end I'll shortly describe the caveats of this method. It
  1199. requires
  1200. a window. Without a window in the target process you can't do didly with
  1201. this
  1202. method. However you can use this method to inject a DLL into the address
  1203. space
  1204. after the window has disappeared and then patch the IAT to make a
  1205. API-hook of
  1206. it like in the Debug-approach section.
  1207.  
  1208. Sourcecodes is avaible at:
  1209. ************************************** NOT FULLY COMMENTED YET! :)
  1210.  
  1211. ---------------
  1212.  
  1213.  
  1214. Litterature
  1215.  
  1216. MadMax (1998) - Cracking using kernel32??, by MadMax Feb 1998.
  1217. ******************
  1218.  
  1219. Natzgul (1998) - Unknown tittle, by Natzgul Jan 1998.
  1220. ******************
  1221.  
  1222. Iceman (1998) - Tweaking with Windows 95 memory, by Iceman jan 1998
  1223. *****************************
  1224.  
  1225. Pietrek, Matt - Windows 95 System Programming Secrets, IDG books 1995.
  1226.  
  1227. MSJ (1995) - Microsoft Systems Journal May 1995, Jeffrey Ritcher.
  1228.  
  1229. Various sourcecodes by Me :).. all can be found on my page
  1230. ************************
  1231.  
  1232. ------------------------------------------------------------------------
  1233. -----
  1234. Thanks must go to:
  1235. Patriarch / PWA, friend roomate and local expert.
  1236. Random / Xforce, God of the PE-format
  1237. Net Walker / Brazil
  1238. Quine / HCU
  1239. Acpizer / UCF, nah.. couldn't use what you send me.. but thnx anyways.
  1240. United Cracking Force, my personal benefactor.
  1241. All of which I had many enlightning discussions with.
  1242.  
  1243. Also I'd like to thank
  1244. HalVar/HCU
  1245. WayneKerr/F4CG
  1246. LordByte/UCF
  1247. Madmax/HCU
  1248. and many others
  1249. for their encouragements
  1250.  
  1251.  
  1252. email: ************
  1253. *****************
  1254. Stone/UCF'98
  1255. 2nd&mi!
  1256.  
  1257. ------ DOC END
  1258.  
  1259. kind regards
  1260.  
  1261. Stone / United Cracking Force '98
  1262. 2nd&mi
  1263.  
  1264. "Most people have a favorite Color. Call me sick, but I have a favorite
  1265. data structure"
  1266.             - Matt Pietrek
  1267.  
  1268. =====End of Issue 176===================================
  1269.  
  1270.  
  1271.  
  1272.  
  1273. ========================================================
  1274. +HCU Maillist          Issue: 177             03/27/1998 
  1275. --------------------------------------------------------
  1276. Send Articles To:......................... *************
  1277. Info, Help, Unsubscription, etc:....... ****************
  1278. Web Repository.........................hcuml.home.ml.org
  1279. ========================================================
  1280.  
  1281. CONTENTS:
  1282.  
  1283. #1  Subject: primitives and +HCU matters (fravia+)
  1284.  
  1285. #2  Subject: OpenNT 2.1
  1286.  
  1287. #3  Subject: Re Re Personal Firewall
  1288.  
  1289. ARTICLES:
  1290.  
  1291. -----#1-------------------------------------------------
  1292. Subject: primitives and +HCU matters (fravia+)
  1293.  
  1294. Dear Vrax,  you wrote:
  1295. >In lesson 3.1 Master +Orc indicated that many 
  1296. >of the protection schemes
  1297. >are derived from the twelve primatives
  1298.  
  1299. You touched a very interesting question. I was puzzled (more than 
  1300. two years ago) by the same problem and asked more than once 
  1301. some explanations, +ORC never answered this question, probably 
  1302. because it had a not so innocent stalking meaning :-). So i 
  1303. searched for this, and it was a long, difficult searching session. 
  1304. There are only three references I have found (in 1997): all three 
  1305. of them East-european: a cracking discussion in Hungary, a short text 
  1306. about floppy protections from the University of Prag server and 
  1307. another primitive (that what +ORC calls 'best before': protections 
  1308. that are triggered at a certain date, no matter if and how much you 
  1309. have used the target, based on the date of other files on your 
  1310. machine, not on the system date), discussed in a long thread 
  1311. on Usenet by people that wrote part in english and part in polnish.
  1312. Three of the contributors wrote there that there "are" 12 primitives, just 
  1313. like +ORC.
  1314.  
  1315. So I used this knowledge to try to stalk +ORC himself, at the time 
  1316. I still believed he was Horak (the author of the KGB sniffer), but I 
  1317. got nowhere, and I still know only two of the primitives, and I doubt 
  1318. that the remaining 10 are anywhere to be found but in east europe 
  1319. (if ever :-(
  1320.  
  1321. Anyway I came to the conclusion that the 'primitives' +ORC's spoke
  1322. about are nothing else than the commonest OLD protections, from the 
  1323. CP-M prehistory, so that they would be probably of no use in these 
  1324. overbloated days... yet one never knows, if anybody knows anything 
  1325. about this, by all means get in contact with me, I'm very interested in 
  1326. this matter.
  1327.  
  1328. I take this occasion to tell all readers of the HCU maillist that 
  1329. Master +ORC cannot be contacted at the moment, after having 
  1330. paranoidically renounced to his hotmail address (else I would 
  1331. have bounced him Vrax's question about the 'primitives').
  1332. +Alistair has finished his 'courses' and seems to have 
  1333. disappeared as well. +ORC has charged Aesculapius to take
  1334. care of the HCU now, and he is therefore teaching and preparing 
  1335. the 'strainer' for next year +HCU, that will be published on my 
  1336. page this April. +ORC will (should?) take over in September
  1337. when +he will come back to Europe having finally finished his 
  1338. long sabbatical year. We'll see.
  1339.  
  1340. I will be in holydays between 4-20 april, +gthorne has the 
  1341. keys of my page if needs be.
  1342.  
  1343. later friends, awaiting good essays from you +all
  1344. fravia+
  1345.  
  1346. -----#2-------------------------------------------------
  1347. Subject: OpenNT 2.1
  1348.  
  1349. Hi again,
  1350.  
  1351. I'm still trying my luck to get this #$º$%& OpenNT 2.1 version to 
  1352. run... The keys for 2.0 really doesn't work in any way. However, I 
  1353. have used a brute force attack and generated a lot of keys hoping to 
  1354. find some valid ones... not so lucky with this.
  1355.  
  1356. So please can someone of the gurus here give me a tip how to 
  1357. continue? I really have done everything I know about... Hopefully 
  1358. someone will answer.
  1359.  
  1360.  
  1361.  
  1362. -----#3-------------------------------------------------
  1363. Subject: Re Re Personal Firewall
  1364.  
  1365. Hello Everyone
  1366.  
  1367. Hello Warload
  1368.  
  1369. >>I'm sure there are plenty more I don't know at
  1370. >>this time but if you'd like to we can play around with it and see 
  1371. >>whatwe can come up with.
  1372.  
  1373. Well I do not have Internet access at home and therefore Iam 
  1374. restricted to how much playing around I can do. I apologise 
  1375. for this. But Iam interested in learning as much as possible
  1376. with regards to security and other matters. Also Iam looking
  1377. forward to any future contributions that you may offer and 
  1378. thank you for the information you have already provided.
  1379.  
  1380. cheers Rundus
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389. ______________________________________________________
  1390. Get Your Private, Free Email at **********************
  1391.  
  1392. =====End of Issue 177===================================
  1393.  
  1394.  
  1395.  
  1396.  
  1397. ========================================================
  1398. +HCU Maillist          Issue: 178             03/28/1998 
  1399. --------------------------------------------------------
  1400. Send Articles To:......................... *************
  1401. Info, Help, Unsubscription, etc:....... ****************
  1402. Web Repository.........................hcuml.home.ml.org
  1403. ========================================================
  1404.  
  1405. CONTENTS:
  1406.  
  1407. #1  Subject: Dos-debugger detection & a thougt about ORC
  1408.  
  1409. #2  Subject: My messagehook - source avaible
  1410.  
  1411. #3  Subject: C/C++ Win32 Compiler
  1412.  
  1413. ARTICLES:
  1414.  
  1415. -----#1-------------------------------------------------
  1416. Subject: Dos-debugger detection & a thougt about ORC
  1417.  
  1418.  
  1419.  
  1420. Hi, 
  1421.  
  1422. I read an article about self-modifying code under DOS a couple
  1423. of days ago, and (as probably most advanced crackers know) you're
  1424. supposed to put an unconditional jump in front of your modified 
  1425. code, since this will flush the CPU's prefetch queue on 386/486.
  1426.  
  1427. This could possibly be exploited to get a single-stepper-detection
  1428. for DOS.
  1429. I haven't tried it yet, but this might work on 386 & 486. For the
  1430. Pentium, we'd have to go to a little further lenght to get this right.
  1431.  
  1432. Pseudocode:
  1433.  
  1434.     cli   ; Disable interrupts
  1435.     mov   ax, 9090h
  1436.     mov   bx, offset CriticalCode
  1437.     mov   di, bx
  1438.     stosw ; NOP out the xor, the CPU won't notice since
  1439.      
  1440.  CriticalCode  ; the code is already prefetched
  1441.     xor   ax, ax 
  1442.     cmp   ax, 90h 
  1443.     je    DeBuggerDetected
  1444.     jmp   DeBuggerNotDetected
  1445.  
  1446. The processor on 386/486 will prefetch this whole code. The processor
  1447. will prefetch the code, so that the NOP'ing out of the XOR won't have
  1448. an effect. But if a debugger executes code in-between the stosb and the 
  1449. xor, the prefetch queue will most likely be flushed, and the NOP
  1450. will be executed instead of the XOR, leading to ax=90 at our comparison 
  1451. instead of ax = 0.
  1452.  
  1453. On the Pentium, Intel fixed this bug. 
  1454. To achieve the same goal now, (If I understood everything right), 
  1455. we'd have to find the PHYSICAL address for CriticalCode, then get
  1456. ourselves ANOTHER Segment:Offset address which corresponds to the 
  1457. same physical address... I am not sure about this part though, the
  1458. writer just told the reader that he doesn't have to worry about that
  1459. stuff any more on a Pentium.
  1460.  
  1461.  
  1462. A thought about ORC's western european heritage: 
  1463. I recently read an interview with Vesselin Bontchev (Bulgarian AV-
  1464. Celebrity), where he talked about whole teams of programmers in the
  1465. Soviet Union which were specialized in deprotecting and changing of
  1466. copyright notes in commercial programs, which were EMPLOYED BY THE
  1467. GOVERNMENT. 
  1468. It would be quite interesting to get more information about this 
  1469. program, since the idea of "12 basic prototypes" for protections sounds 
  1470. like something I'd be teaching someone who's going to learn
  1471. a job... 
  1472.  
  1473.  
  1474. Just a couple of thoughts, correct me & shout at me if I'm horribly
  1475. wrong :-) 
  1476.  
  1477.  
  1478. Halvar
  1479.  
  1480.  
  1481. ______________________________________________________
  1482. Get Your Private, Free Email at **********************
  1483.  
  1484. -----#2-------------------------------------------------
  1485. Subject: My messagehook - source avaible
  1486.  
  1487. Many thanks to all who have commented on my messagehook doc. The
  1488. sourcecodes are avaible now:
  1489. ********************************************
  1490.  
  1491. The final version of "In memory patching" will be out around the mid of
  1492. the next week.
  1493.  
  1494. enjoy,
  1495. Stone / United Cracking Force '98
  1496.  
  1497.  
  1498. -----#3-------------------------------------------------
  1499. Subject: C/C++ Win32 Compiler
  1500.  
  1501.  
  1502. Sorry if this is off-topic, I just know that I was searching fo 
  1503. something like this for a long time:
  1504.  
  1505.  I had been searching for a C/C++ compiler which 
  1506. would   a) not clog up my VERY limited HD space
  1507.         b) produce Win32 code 
  1508.        
  1509. Well, I finally found something interesting: A freeware w32-C++ 
  1510. compiler which is only 1.6 mb :-)
  1511.  
  1512. It is not yet totally unbuggy etc, and the docs are hardly existant,
  1513. but it's a nice compiler which (from what I've heard) optimizes the
  1514. code pretty well:
  1515.  
  1516. ***************************************************
  1517.  
  1518. Have fun :-)
  1519.  
  1520. BTW: I constantly stumble over huge amounts of cracking/virus 
  1521. discussions in the russian-speaking parts of the usenet; does
  1522. anyone in here speak russian and know about the quality of these
  1523. discussions ? 
  1524. And if they're worth it, does anyone know a basic guide to russian
  1525. & cyrillic letters ?
  1526.  
  1527. HalVar
  1528.  
  1529. ______________________________________________________
  1530. Get Your Private, Free Email at **********************
  1531.  
  1532. =====End of Issue 178===================================
  1533.  
  1534.  
  1535.  
  1536.  
  1537. ========================================================
  1538. +HCU Maillist          Issue: 179             03/29/1998 
  1539. --------------------------------------------------------
  1540. Send Articles To:......................... *************
  1541. Info, Help, Unsubscription, etc:....... ****************
  1542. Web Repository.........................hcuml.home.ml.org
  1543. ========================================================
  1544.  
  1545. CONTENTS:
  1546.  
  1547. #1  Subject: Privacy
  1548.  
  1549. ARTICLES:
  1550.  
  1551. -----#1-------------------------------------------------
  1552. Subject: Privacy
  1553.  
  1554. Once again a privacy subject!
  1555. is there a maillist on the subject:privacy,ip masquerading,firewall 
  1556. setup,anonymous,intrusion,port intrusion,isp & router  and so on?
  1557. I mean a maillist not really about cracking discussion,and were fine to 
  1558. not mix everything in everything!and also fine 'coz i suspect that this 
  1559. maillist is too much released a to pubc and some huges knowledges people 
  1560. doesn't want to spread around those hints!
  1561. +Fravia by his probable 100000 mails/days concerning all lamerest stuffs 
  1562. know what i mean.
  1563. ok,if anyone can help on that,just mail me ********************
  1564. thanks to all
  1565.  
  1566.  
  1567. ______________________________________________________
  1568. Get Your Private, Free Email at **********************
  1569.  
  1570. =====End of Issue 179===================================
  1571.  
  1572.  
  1573.  
  1574.  
  1575. ========================================================
  1576. +HCU Maillist          Issue: 180             03/30/1998 
  1577. --------------------------------------------------------
  1578. Send Articles To:......................... *************
  1579. Info, Help, Unsubscription, etc:....... ****************
  1580. Web Repository.........................hcuml.home.ml.org
  1581. ========================================================
  1582.  
  1583. CONTENTS:
  1584.  
  1585. #1  Subject: OpenNT 2.1
  1586.  
  1587. #2  Subject: Not-English discussion groups
  1588.  
  1589. #3  Subject: Re: Privacy
  1590.  
  1591. ARTICLES:
  1592.  
  1593. -----#1-------------------------------------------------
  1594. Subject: OpenNT 2.1
  1595.  
  1596. OK. I got my CD and re-using chown's key generator (slightly modified) I
  1597. got the following:
  1598.  
  1599. AAAAAABFRjU   =>   Server
  1600. AAAAAABa=Dk   =>   Mystery 133
  1601. AAAAAAE3NBM   =>   WorkStation
  1602. AAAAAAFWiYY   =>   Unknown
  1603. AAAAAAFXHCU   =>   SDK
  1604. AAAAAAAFKxC   =>   bad key?
  1605.  
  1606. Now I'm not too convinced by this as the demo key's I have received give
  1607. 'bad key' i.e. return of zero from one of the functions. In obtaining these
  1608. serials I've basically used chown's program and hoped for the best - I've
  1609. just assumed that everything has more or less stayed the same i.e. the
  1610. return codes etc. etc. However, I can't (supposedly ;) test this as I don't
  1611. have NT, but rather than fooling the script I've secured a copy of NT
  1612. server 4 and will install soon anyway. If whoever has been posting (use a
  1613. sig!) has success (or otherwise) with these please post a message.
  1614.  
  1615. If you use IDA on MYDLL.DLL you get a beautiful disassembly - you also
  1616. notice that things have changed since chown originally cracked this. Also
  1617. using one of our newer tools 'wisdec' by Natzgul (thanks!) by decompiling
  1618. the install script we can see some of the interaction:
  1619.  
  1620. 000079A9: 0022   IF 00000001 != NumLocal[0004] THEN GOTO LABEL_0159
  1621. 000079B7: 0023   StrCompare (StrLocal[0004],"")
  1622. 000079BF: 0128   NumVar[0056] = LAST_RESULT != 00000000
  1623. 000079D1: 0022   IF NumVar[0056] = 00000000 THEN GOTO LABEL_014A
  1624. 000079DF: 00B4   MYDLL.verifyKey (StrLocal[0004])
  1625. 000079E7: 0021   NumVar[0057] = LAST_RESULT
  1626. 000079EF: 0021   NumLocal[0005] = NumVar[0057]
  1627. 000079F7: 006E   NumToStr (StrLocal[0002],NumLocal[0005])
  1628. 000079FF: 00B4   MYDLL.whatIsThis (StrLocal[0004])
  1629. 00007A07: 0021   NumVar[0056] = LAST_RESULT
  1630. 00007A0F: 0021   NumVar[004A] = NumVar[0056]
  1631. 00007A17: 0128   NumVar[0056] = NumLocal[0005] = 00000000
  1632. 00007A29: 0128   NumVar[0057] = NumVar[004A] = 0000012D
  1633. 00007A3B: 0128   NumVar[0058] = NumVar[004A] = 0000012E
  1634. 00007A4D: 0126   NumVar[0059] = NumVar[0057] || NumVar[0058]
  1635. 00007A58: 0128   NumVar[0057] = NumVar[004A] = 0000012F
  1636. 00007A6A: 0126   NumVar[0058] = NumVar[0059] || NumVar[0057]
  1637. 00007A75: 0128   NumVar[0057] = NumVar[004A] = 00000130
  1638. 00007A87: 0126   NumVar[0059] = NumVar[0058] || NumVar[0057]
  1639. 00007A92: 0127   NumVar[0057] = NumVar[0056] && NumVar[0059]
  1640. 00007A9D: 0022   IF NumVar[0057] = 00000000 THEN GOTO LABEL_0147
  1641. 00007AAB: 0021   NumLocal[0002] = 00000001
  1642. 00007AB5: 0013   StrLocal[0008] = StrLocal[0004]
  1643. 00007ABD: 00B4   MYDLL.isDemoKey (StrLocal[0008])
  1644. 00007AC5: 0021   NumVar[0056] = LAST_RESULT
  1645. 00007ACD: 0021   NumVar[0044] = NumVar[0056]
  1646. 00007AD5: 0128   NumVar[0056] = NumVar[0044] = 00000001
  1647. 00007AE7: 0022   IF NumVar[0056] = 00000000 THEN GOTO LABEL_0145
  1648. 00007AF5: 0021   NumVar[0041] = 00000001
  1649. 00007AFF: 0021   NumVar[0042] = 00000001
  1650.  
  1651. <LABEL_0145> REF: 00007AE7
  1652.   |
  1653. 00007B11: 002C   Goto (LABEL_0149)
  1654.  
  1655. <LABEL_0147> REF: 00007A9D
  1656.   |
  1657. 00007B1A: 0021   NumLocal[0002] = 00000000
  1658. 00007B24: 0091   CtrlSetText (StrLocal[0001],000003E8,"")
  1659. 00007B31: 0013   StrLocal[000A] = "Workstation/Server Key Invalid"
  1660.  
  1661. I'm sure that you can get something working when you get the IDA
  1662. disassembly and if not, I'm sure you could crack it the 'conventional' way.
  1663.  
  1664. BTW, has anybody had problems with wisdec? I've tried to use it about 5
  1665. times and this is the first time it has worked. The other times it has
  1666. halted at around 27% with a 'richedit insertion' error.
  1667.  
  1668. ~~
  1669. Ghiribizzo
  1670.  
  1671. -----#2-------------------------------------------------
  1672. Subject: Not-English discussion groups
  1673.  
  1674. To: HalVar and others.
  1675. Hi,
  1676. Do not worry: you have nothing to lose no to be able to watch Russian
  1677. cracks/virii discussion groups: they are numerous and of low quality,
  1678. and refer to English sources, but the situation may change in the future.
  1679. What you can find of good there (Russia) are smuggled software on FTP
  1680. sites (look for ftp. ... .ru or .su), just browse their FTP, all titles
  1681. are in English. But they do not like it and are now introducing passwords.
  1682. More advanced discussion level is in Slovak, may be also in Poland.
  1683. Good cracking tools from Russia are explained by participation of
  1684. professionals or semi-professionals in the process: if they were in
  1685. the West, they would not stay jobless: there are enough places in
  1686. Micro$ for everybody to earn decently his living. It may be that
  1687. some individuals were engaged in deprotection activities on the state
  1688. level, but it is highly unprobable that they would share their
  1689. experience in discussions groups or Web sites. I am almost sure
  1690. that all big software companies anywhere in the world have such
  1691. individuals in their service and for their service; and all industrial
  1692. countries have some professionals for reverse engeeering, and probably
  1693. they have created their powerful tools for themselves. In fact, what
  1694. is being discussed in the user groups, it is on the artisan level
  1695. and time-consuming. But we must thank all participants for free contri-
  1696. butions in our hard society.
  1697. Many interesting Japanese/Chinese/Korean FTP sites, in their native
  1698. language, are being found. No knowledge about their discussion
  1699. groups: I have to install their fonts on my browsers, which can now
  1700. browse all fonts except from FarEast. The computer memory is becoming
  1701. cheap, and one can afford installing many information-processing
  1702. robots.
  1703. Lcc C++ compiler (and others) has been lately offered on CD by a French
  1704. cheap magazine WindowsNews. No interesting discussion groups in French
  1705. German, Italian or Spanish. Interesting commercial channels (with
  1706. passwords: see .sk site) are in Nordic languages. Nothing interesting
  1707. in Hebrew or MiddleEast languages: only politics. Cultural programs
  1708. may be found on some Indian Websites, with free Devanagari (Hindi)
  1709. fonts.
  1710. AZ111.
  1711.  
  1712. -----#3-------------------------------------------------
  1713. Subject: Re: Privacy
  1714.  
  1715.  
  1716.  
  1717. >is there a maillist on the subject:privacy,ip masquerading,firewall 
  1718. >setup,anonymous,intrusion,port intrusion,isp & router  and so on?
  1719.  
  1720. There are plenty of documents about that floating around. rhino9.org
  1721. used to have some, Phrack is a good source etc.
  1722.  
  1723. Once you get past the basics, subscribe to bugtraq and read. 
  1724. There are a couple of smaller maillists around, but many of them
  1725. are full of lemurs who run 'sploits from rootshell and go on IRC
  1726. and brag about everything...
  1727.  
  1728. I'm not saying there are no better mailinglists, I just don't know
  1729. of any.
  1730.  
  1731. >maillist is too much released a to pubc and some huges knowledges 
  1732. >people 
  1733. >doesn't want to spread around those hints!
  1734.  
  1735. Be assured that the information on hacking & intrusion is spread out
  1736. VERY well :-) 
  1737.  
  1738. For most parts it consists of Unix and TCP/IP programming, get a good
  1739. book on unix, install Linux or FreeBSD, learn C, get a book on sockets
  1740. programming which includes raw sockets and a doc on UDP and TCP packets 
  1741. and youre pretty much set.
  1742.  
  1743. Halvar
  1744.  
  1745.  
  1746. ______________________________________________________
  1747. Get Your Private, Free Email at **********************
  1748.  
  1749. =====End of Issue 180===================================
  1750.