lllsd
驱动牛犊
驱动牛犊
  • 注册日期2001-10-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1503回复:6

关于windows95 system-programming-secrets一书win32wlk例子的问题

楼主#
更多 发布于:2001-10-02 21:04
win32wlk例子在ME下不能用了,process database地址根本就找不到,是不是obsfucator的取得方法不对了??还是他的和obsfucator的XOR算法改了???有谁知道啊???各位高手帮帮忙啊~
Tomgin
驱动牛犊
驱动牛犊
  • 注册日期2001-08-08
  • 最后登录2005-06-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-10-03 18:19
是obsfucator的取得方法不对了,他提供的方法只能在95下用。
在98一版,和二版下就不好使了。由于需要我研究了98一版,
和二版的 obsfucator,ME 的就你自己研究吧。

这上有代码。
http://www.csdn.net/expert/topic/189/189045.shtm

努力呀,还有许多东西不会呢。
lllsd
驱动牛犊
驱动牛犊
  • 注册日期2001-10-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-10-12 02:28
winme的找到了
lllsd
驱动牛犊
驱动牛犊
  • 注册日期2001-10-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-10-12 02:38
请问如何给帖子给分 啊?
cicada
驱动小牛
驱动小牛
  • 注册日期2003-12-09
  • 最后登录2008-07-11
  • 粉丝1
  • 关注0
  • 积分74分
  • 威望15点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-07 23:28
虽然有点过时了,可是我现在需要了解有关obsfucator的取得方法。如何在98一版,和二版下用啊?这个链接好像看不了,帮帮忙呀!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2004-03-08 11:19
9X的时日不多了,包括VXD在内的9X专用技术研究价值不大,劝你趁早转,那本书里面的OSFUSCATE的方法本来就不对。
.586P
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
  
   UNICODE   = FALSE
  

.data
   xEsp     dword           ?
   pentry32 processentry32  <>
   place    sign 11 dup     (?)
  
.code
   text     hex2str,       </##x/0>
   text     getcpidstack,  <obsfucator via getcurrentprocessid and stack/0>
   text     getcpidkernel, <obsfucator via getcurrentprocessid and kernel/0>
   text     getctidstack,  <obsfucator via getcurrentthreadid and stack/0>
   text     getctidkernel, <obsfucator via getcurrentthreadid and kernel/0>
   text     th32,          <obsfucator from toolhelp32/0>

   titles   dword  getcpidstack, getcpidkernel, getctidstack, getctidkernel,\
                   th32


 primarythread:
   movzx      eax,   ds
   sub      ecx,   ecx
   test     al ,   100b      ;user 32bit tasks have ldt selectors in 9x
   jz       Notin9x

   assume   fs:nothing    
   push     offset SEH  ;build xframe (see infos\sehall.zip)
   push     fs:    [ecx]
   mov      fs:    [ecx], esp
   mov      xEsp,  esp
   mov      edi,   ecx
;-------------------------------------------
   call     GetCurrentProcessId
   mov     ebx,eax  

   swin32   ebx
   xor      eax,   [esp-8]       ;bad because it reads from esp-??
   swin32   displayobsfucateur
;-------------------------------------------
   swin32   ebx                  ;this method is used in atm, apihooks, ..
   mov    ecx,   [ebx+1]
   mov      edx,   [ecx]
   xor      eax,   [edx]         ;bad because it reads from kernel space
   swin32   displayobsfucateur
;-------------------------------------------
   imov     ebx,   getcurrentthreadid

   swin32   ebx
   xor      eax,   [esp-8]       ;bad because it reads from esp-??
   swin32   displayobsfucateur
;-------------------------------------------
   swin32   ebx
   mov    ecx,   [ebx+1]
   mov      edx,   [ecx]
   xor      eax,   [edx]         ;bad because it reads from kernel space
   swin32   displayobsfucateur
;-------------------------------------------
   mov      esi,   offset pentry32
   assume   esi:   ptr processentry32
   iwin32   createtoolhelp32snapshot, th32cs_snapprocess, 0
   mov      ebx,   eax
   mov      [esi].dwsize, sizeof processentry32
   inc      eax
   je       th32failed
   iwin32   process32first, ebx, esi
   push     eax
   iwin32   closehandle, ebx
   pop      eax
   test     eax,   eax
   je       th32failed
   mov      eax,   [esi].th32parentprocessid ; or th32moduleid
   swin32   displayobsfucateur
;-------------------------------------------
  th32failed:
  smoothend:
   pop      fs:    [0]     ;remove xframe
   pop      ecx            ;remove xframe
  notin9x:
   iwin32   exitprocess, eax

SEH PROC C pExcept:DWORD,pFrame:DWORD,pContext:DWORD,pDispatch:DWORD
assume  edi:ptr CONTEXT
        assume  esi:ptr EXCEPTION_RECORD
        mov     esi,pExcept
        mov     edi,pContext          
        test    dword ptr[esi+4],1              ;Exception flags
        jnz     @f        
        test    dword ptr[esi+4],6
        jnz     @f
          
        mov     eax,xEsp
mov     [edi].regEsp,eax                 ;恢复ESP              
mov     [edi].regEip,offset smoothend                ;
xor     eax,eax
        mov     [edi].regEax,eax      
        ret
@@:
        mov eax,1
            
        ret
SEH ENDP

  displayobsfucateur:
   icwin32i wsprintf,   offset place, shex2str, eax
   iwin32i  messagebox, null, offset place, titles[edi*4], mb_iconinformation
   inc      edi
   ret    

end  primarythread

:translate
@echo off
ml    /c /coff /nologo obsfucator.bat
link3 obsfucator /ignore:4078,4060 /nologo /stub:pestub.exe /subsystem:windows /merge:.idata=.text
del   obsfucator.obj
pause
cls
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
cicada
驱动小牛
驱动小牛
  • 注册日期2003-12-09
  • 最后登录2008-07-11
  • 粉丝1
  • 关注0
  • 积分74分
  • 威望15点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-03-08 21:12
谢谢了,现在有一个项目要做,涉及到win98,所以。可是汇编我看不太懂,有没有VC写的。谢谢了!!! :D
游客

返回顶部