首页
社区
课程
招聘
使用
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-12-16 10:32
0
[讨论].NET程序保护
[QUOTE=chenxiaolu;1029795]这种思想就是压缩壳的基本思想,可以将EXE和其他文件作为资源,然后通过读取资源到byte[]数组,然后通过Assembly.Load加载进来就行了。有一款开源软件叫做.netZ http://madebits.com/netz/ ("http://madebits.com/netz/&qu...[/QUOTE]

谢谢你的指导。。。
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-12-16 09:19
0
[讨论].NET程序保护
我有个想法:但不知道是否可行?请教一下大侠们:
将EXE文件和所有的文件压缩成一个自解压运行文件,但不解压到硬盘上,而是解压到虚拟内存上。但我不知道该如何运行在虚拟内存上的文件以及系统如何不去硬盘上查找所需要的DLL文件而去虚拟内存里查找??

谢谢!
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-12-15 17:04
0
[讨论].NET程序保护
那.NET的重点是什么?
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-12-15 16:51
0
[讨论].NET程序保护
.NET的重点是什么呢?我的目的不是限制别人使用,而是不想让别人反编译研究我的程序。谢谢你。
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-11-14 14:22
0
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-10-19 09:20
0
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-9-20 09:23
0
[讨论]目录的权限问题
谢谢提示,我学下这两个函数。
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-4-1 12:01
0
[讨论]VB的DOUBLE类型数据的存储格式
楼上说得很对。就是保存成浮点类型的。我已经查到了相关资料,并可以解读DOUBLE类型的内存存储格式了。

浮点数的存储格式在IEEE 754标准中规定的,由IEEE(Institute of Electrical and Electronics Engineers)美国电气及电子工程师学会制定。标准名称叫做:二进制浮点数算术标准。由于涉及的内容较多,我就本例中的格式进行介绍。

二进制浮点数是以符号数值表示法格式储存,将最高效位元指定为符号位元(sign bit);“指数部份”,即次高效的e位元,为浮点数中,经指数偏差(exponent bias)处理过后的指数;“小数部份”,即剩下的f位元,为有效位数(significand)减掉有效位数本身的最高效位元。 如下图所示:

  +-+--------+-----------------------+
  |S|  Exp   |  Fraction             |
  +-+--------+-----------------------+

再具体到64位双精度,规定是这个样子的:

  S EEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
  0 1        11 12                                                63

算法是:

If E=2047 and F is nonzero, then V=NaN ("Not a number")
If E=2047 and F is zero and S is 1, then V=-Infinity
If E=2047 and F is zero and S is 0, then V=Infinity
If 0<E<2047 then V=(-1)**S * 2 ** (E-1023) * (1.F) where "1.F" is intended to represent the binary number created by prefixing F with an implicit leading 1 and a binary point.
If E=0 and F is nonzero, then V=(-1)**S * 2 ** (-1022) * (0.F) These are "unnormalized" values.
If E=0 and F is zero and S is 1, then V=-0
If E=0 and F is zero and S is 0, then V=0

在本例中,再看看里头的数据:
0012F854   05 00 00 00 80 08 00 00 00 00 00 00 00 00 F0 3F  

05表示DOUBLE类型,那么最后8个字节  00 00 00 00 00 00 F0 3F就是具体的数字了, 十六进制的表示就是3FF0000000000000,转成二进制形式就是:

00111111 11110000 00000000 00000000 00000000 00000000 00000000 00000000

S=0,E=01111111111(十进制:1023) F=后面的全0
符合0<E<2047 的情况
那么结果就是 (-1)**S * 2 ** (E-1023) * (1.F)=(-1)**0 * 2 ** (1023-1023) * (1.0)=1.0,转换成整数就是:1。

更深入的阅读请看:
http://zh.wikipedia.org/wiki/IEEE_754#64.E4.BD.8D.E9.9B.99.E7.B2.BE.E5.BA.A6
http://www.psc.edu/general/software/packages/ieee/ieee.php
http://cuiyingfeng.blog.51cto.com/43841/6669/
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-3-22 18:04
0
[讨论]如何确定当前指令是从哪条指令过来的
这个我已经解决了。

我参考了http://bbs.pediy.com/showthread.php?t=73623 帖子中5楼的方法二思路,又学习了http://bbs.pediy.com/showthread.php?t=26029脚本知识。写了下面的脚本:

/*//////////////////////////////////////////////////
Found Last EIP
Author: chglyq
Email : chglyq@qq.com
OS : WinXP sp1,Ollydbg 1.1,OllyScript v0.92
Date : 2011-03-23
Action: Found Last EIP
Config: N/A
Note : If you have one or more question, email me please,thank you!
//////////////////////////////////////////////////*/
var preEIP    /*preEIP记录当前指令的上一条指令的EIP*/

mov preEIP,eip  

start:
ESTI           /*F7*/
cmp eip,75FF0000   
jb ipcomp  /*有些段不用F7跟踪*/
RTR           /*CHRL+F7*/
mov preEIP,eip
jmp start

ipcomp:
cmp eip,73393600   /*就是要找73393600的上一条指令*/
jne jixuzou
log preEIP        /*找到打印*/
pause
jmp findover
jixuzou:
   mov preEIP,eip
   jmp start

findover:
   ret

/*==========这是我的第一个脚本============*/
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-3-21 23:44
0
雪    币: 73
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
chglyq 1 2011-3-14 11:43
0
[求助]学习天草中级班培训第11课碰到的问题
0040100B     E8 B5A6A577           call RPCRT4.77E5B6C5-------->这里改成CreateMutexA
00401010     9D                    popfd
00401011     61                    popad
00401012   - E9 7A13A677           jmp RPCRT4.77E62391-------->这里改成OpenMutexA

----UpK告诉我的,果然是这样。疏忽了。
精华数
RANk
73
雪币
0
活跃值
关注数
粉丝数
0
课程经验
0
学习收益
0
学习时长
基本信息
活跃值  活跃值:活跃值
  在线值:
  浏览人数:247
  最近活跃:0
  注册时间:2010-04-27
勋章
能力值

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册