是否有类似于OllyDbg/SoftICE for java的实用程序?即执行类(来自jar/with class path),并且在没有源代码的情况下,显示中间代码的反汇编,能够逐步执行/跳过/搜索引用/编辑内存中的特定中间代码/将编辑应用到文件中. .
如果没有,是否可以写这样的东西(假设我们愿意在调试期间没有热点的情况下生活)?
编辑:我不是在谈论JAD或JD或Cavaj.这些是很好的反编译器,但我不想要一个反编译器有几个原因,最值得注意的是它们的输出不正确(充其量,有时只是简单的错误).我不是在寻找一个神奇的"编译到java代码的字节" - 我想看到即将执行的实际字节.此外,我希望能够更改这些字节(就像在汇编调试器中一样),并希望将更改的部分写回类文件.
Edit2:我知道javap存在 - 但它只有一种方式(并且没有任何分析).示例(代码取自vmspec文档):从java代码中,我们使用"javac"来编译:
void setIt(int value) {
i = value;
}
int getIt() {
return i;
}
Run Code Online (Sandbox Code Playgroud)
到java .class文件.使用javap -c我可以得到这个输出:
Method void setIt(int)
0 aload_0
1 iload_1
2 putfield #4
5 return
Method int getIt()
0 aload_0
1 getfield #4
4 ireturn
Run Code Online (Sandbox Code Playgroud)
这对于反汇编部分是可以的(没有分析就不太好 - "字段#4是Example.i"),但我找不到另外两个"工具":
1)当我打开新的CMD(Win + R => cmd)时.它从介绍开始.(第3行)
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
The system cannot find the path specified.
C:\Users\ViliamKopecky>
Run Code Online (Sandbox Code Playgroud)
2)当我执行某些命令cmd /C dir(或(cmd /C php -v或其他))时(第2行)
C:\Users\ViliamKopecky>cmd /C dir
The system cannot find the path specified.
Volume in drive C is Windows7_OS
Volume Serial Number is 8230-1246
...
C:\Windows\System32>cmd /C php -v
The system cannot find the path specified.
PHP 5.4.8 (cli) (built: Oct 16 2012 22:30:23)
Copyright (c) …Run Code Online (Sandbox Code Playgroud) 我想为UN-rooted应用程序创建一个系统应用程序(安装它时会要求用户允许将其作为系统应用程序).由于我对android不熟悉,请告诉我如何创建它.
提前致谢.
settings android system-administration system application-settings
如何在C#.net中建立带有移动(带GPS)的GPS跟踪系统?情景是
通过支持GPS的移动电话跟踪用户(服务工程师,这里没有任何违法行为).我需要什么软件和硬件?有没有开源实现?
对于车辆跟踪系统,我如何使用GPS?我想知道各种步骤/程序.我正在寻找一些正确的方向.
这是一个成功发送()"原子"的后续问题?,我认为它实际上涉及系统调用,而不仅仅是发送套接字.
哪些系统调用可以中断,何时中断处理中断?我已经了解了SA_RESTART,但并不完全了解发生了什么.
如果我在没有SA_RESTART的情况下进行系统调用,是否可以通过与我的应用程序无关的任何类型的中断(例如用户输入)来中断调用,但要求操作系统中止我的呼叫并执行其他操作?或者它只是被与我的进程直接相关的信号中断(CTRL + C,套接字关闭,......)?
设置SA_RESTART时,send()或任何其他"慢"系统调用的语义是什么?它是否会一直阻塞,直到我的所有数据都被传输或套接字关闭,或者它是否能以小于send()参数中的计数的数字返回?
重启的实施在哪里?操作系统是否知道我希望在任何中断时重新启动调用,或者是否有一些信号发送到我的进程然后由库代码处理?或者我必须自己做,例如在while循环中包装调用并根据需要重试?
假设我的C程序处理SIGUSR1.当它收到信号时,是否可以知道是谁发送的?IE中.得到那个过程的pid?
请参阅/netinet/tcp.h中TCP头的定义:
struct tcphdr
{
u_int16_t th_sport; /* source port */
u_int16_t th_dport; /* destination port */
tcp_seq th_seq; /* sequence number */
tcp_seq th_ack; /* acknowledgement number */
# if __BYTE_ORDER == __LITTLE_ENDIAN
u_int8_t th_x2:4; /* (unused) */
u_int8_t th_off:4; /* data offset */
# endif
# if __BYTE_ORDER == __BIG_ENDIAN
u_int8_t th_off:4; /* data offset */
u_int8_t th_x2:4; /* (unused) */
# endif
u_int8_t th_flags;
# define TH_FIN 0x01
# define TH_SYN 0x02
# define TH_RST 0x04
# define …Run Code Online (Sandbox Code Playgroud) 我在Eclipse 3.4中使用JUnit 3.当我运行JUnit测试用例时,一切正常,测试完成.唯一的问题是我想看到我正在运行的类的输出.所有类都具有基本的System.out.print()到一些输出值.因此,当我运行测试时,我根本看不到任何控制台消息.当测试成功时,如何让Eclipse在Console窗口中显示System.out.print()输出?
我正在学习C语言.我指的是Dennis Ritchie和Kernighan的书.那就是ANSI ANSI投诉计划.我已经安装了ANSI编译器.我刚刚安装了Sublime text 2编辑器.有人可以给我一个可以执行以下操作的构建系统.
1)编译我的源文件
2)在不成功的编译时,在sublime内显示错误(格式良好).
3)成功编译后,生成名称与工作目录中的源文件名相同的二进制文件.
4)接受sublime内的任何用户输入以计算输出.(由于我是初学者,我主要编写会要求用户输入的程序.例如:用于计算用户输入名称中字符数的程序.)
5)编译和运行的单独选择.
提前致谢.
当我启动java程序时java -Duser.timezone="UTC",
System.out.println( System.getProperty( "user.timezone" ) );
System.out.println( new Date() ); // prints time in UTC
Run Code Online (Sandbox Code Playgroud)
打印UTC时间,但是当我在代码中设置如下:
System.setProperty( "user.timezone", "UTC" );
System.out.println( System.getProperty( "user.timezone" ) ); // prints 'UTC'
System.out.println( new Date() ); // prints time in local zone, not in UTC
Run Code Online (Sandbox Code Playgroud)
不以UTC格式打印时间.我需要在代码中设置时间.不寻找乔达
环境:JDK 1.6/Windows XP
请帮忙.非常感谢!
system ×10
c ×3
java ×3
linux ×2
android ×1
build ×1
c# ×1
cmd ×1
console ×1
datetime ×1
debugging ×1
disassembly ×1
eclipse ×1
endianness ×1
exec ×1
gps ×1
interop ×1
interrupt ×1
javap ×1
junit ×1
networking ×1
php ×1
properties ×1
settings ×1
signals ×1
sublimetext2 ×1
timezone ×1
tracking ×1
windows ×1