我有一个文件,其中包含如下数据:
recv(1178884, NULL, 4294967267, 0) = 0
......
......
Run Code Online (Sandbox Code Playgroud)
我的源代码是:
try (BufferedReader br = new BufferedReader(new FileReader("D:\\smsTrace.txt"))) {
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null) {
String sysCallName = sCurrentLine;
String[] sysCallTokens = sysCallName.split("(");
System.out.println(sCurrentLine);
}
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
当我拆分时sysCallName.split(",")它工作正常,但当我如上所述使用时,它会抛出异常.
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed group near index 1
(
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.accept(Unknown Source)
at java.util.regex.Pattern.group0(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source) …Run Code Online (Sandbox Code Playgroud) 我正在使用restfb API访问我朋友的Java照片.为了访问这些照片,我使用Graph API资源管理器手动生成访问代码,并将其作为参数传递给restfb API调用.
但现在我想通过代码(以编程方式)生成此访问令牌.我见过fb android示例,尤其是hackbook.我没有看到生成任何访问代码,我可以将其用于我自己的应用程序.我是否需要创建一个新的应用程序并获得一些秘密等?任何建议将不胜感激.
我已经在stackoverflow上看到了这些解决方案(解决方案-1和解决方案-2),但我仍然没有从哪里开始?
Update-1 ::
我使用以下代码登录并获取登录用户的访问令牌.但问题是它只适用于我在facebook上创建应用程序以生成app_id的帐户.它没有收到其他帐户的回电.有任何建议请.
如果你不知道从哪里开始,请按照步骤6从头开始创建一个新的应用程序.
public class MainActivity extends Activity implements OnClickListener {
Button login;
TextView accessToken;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
login = (Button) findViewById(R.id.login);
accessToken = (TextView) findViewById(R.id.accessToken);
login.setOnClickListener(this);
// start Facebook Login
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true; …Run Code Online (Sandbox Code Playgroud) 我想知道我们是否可以使用二叉搜索树来模拟堆操作(插入,找到最小值,删除最小值),即使用BST来执行相同的工作?
这样做有什么好处吗?
我从Google Play下载了一些Android应用程序.我Smali通过逆向工程工具获得了代码apktool.我想为这些应用程序生成调用图.我已经看到很多关于堆栈溢出和谷歌的链接,大多数建议的工具是c/c++或者如果它们是Java,他们需要我没有的源代码,当然.
有没有办法自动生成调用图?谢谢.
这是我的内核模块中的函数,我在后面的阶段使用insmod命令插入make.我正在努力 goldfish (2.6.29)
asmlinkage long our_sys_read(unsigned int fd, char *buf, size_t count)
{
printk("------->> our_sys_read getuid() ---------- %d\n", getuid());
return original_call_read(fd,buf,count);
}
Run Code Online (Sandbox Code Playgroud)
我想捕获系统调用并找出哪些用户进行了这些系统调用.但是当我运行'make'时,它会抛出我的错误.
/home/mohsin/LKM/trapcall.c:245: error: implicit declaration of function 'getuid'
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.
我有一个简单的C程序,当我编译并运行它时./output,它是否在Linux上得到一个PID?(我认为,每个正在运行的程序都是一个进程,它应该有一个PID.)
我使用了ps aux命令,但我找不到进程名称.
我记得,当我的控制台应用程序(一个C程序)在Windows 7上运行时,我能够通过Volatility工具获得它的PID.
#include<stdio.h>
void main()
{
printf("Hello World!");
}
Run Code Online (Sandbox Code Playgroud) 出于我的研究目的,我想看看当程序因某些错误而被杀死/崩溃时操作系统所做的更改,比如说缓冲区溢出攻击.
让我在这里解释整个场景.
假设一个应用程序正在运行,其数据和代码在内存中.攻击者试图通过利用一些缓冲区溢出漏洞来劫持应用程序来访问计算机,但系统检测到它并杀死正在被利用的应用程序.现在我想看看操作系统在内存中是否有任何痕迹在它杀死进程时以及操作系统在杀死该进程之前采取了哪些必要的步骤.
此外,是否有任何工具可以在执行交流程序时实时跟踪内存更改?我们可以将内存快照数据反编译成一些人类可读的语言(汇编代码,可能)吗?
编辑::
以下示例
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
int x;
char arr[4];
char * src = "haha";
printf("Before copying\n");
scanf("%d", &x);
if(x> 1)
strcpy(arr, src);
printf("%s \n", arr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它产生缓冲区溢出错误.在检查之前,它工作正常.输入大于1的x后,它会使程序崩溃.我想看看内存中是否留下任何痕迹,即使这个程序崩溃/被杀死.
谢谢.
我想取一个输入文件中给出的温度的平均值,我的Mapper和Reducer synatax似乎很好,但我仍然收到以下错误:
Unable to load realm info from SCDynamicStore
13/02/17 08:03:28 INFO mapred.JobClient: Task Id : attempt_201302170552_0009_m_000000_1, Status : FAILED
java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to org.apache.hadoop.io.IntWritable
at org.apache.hadoop.examples.TempMeasurement$TempMapper.map(TempMeasurement.java:26)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
Run Code Online (Sandbox Code Playgroud)
我的Mapper功能是这样的:
public static class TempMapper extends Mapper<IntWritable, Text, IntWritable, FloatWritable>{
@Override
protected void map(IntWritable key, Text value, Context context)
throws IOException, InterruptedException {
//code for getting date and temperature
String temp = columns.get(3);
context.write(new …Run Code Online (Sandbox Code Playgroud) 我有属于正类的非常小的数据,而有来自负类的大量数据。据教授。Andrew Ng(异常检测与监督学习),由于数据高度不对称,我应该使用异常检测代替监督学习。
如果我错了,请指正我,但是两种技术对我来说都是相同的,即在(有监督的)异常检测和标准的有监督的学习中,我们使用正常样本和异常样本来训练数据并测试未知数据。有什么区别吗?
我是否应该执行负类的欠采样或正类的过采样以获取相同大小的两个类型数据?它会影响整体准确性吗?
进程在某些操作系统上成功或异常终止,操作系统何时决定擦除分配给该进程的内存(数据、代码等);在退出时或当它想为新进程分配内存时?
这个清除内存分配过程在所有操作系统(winXP、Win7、linux、Mac)上都相同吗?
据我了解,页表具有该进程的虚拟地址和内存中实际物理地址的映射。
谢谢。
我想打印传递给linux系统调用的所有参数值.ioctl()例如,在我的情况下,我有以下原型和打印声明.
asmlinkage long our_sys_ioctl(unsigned int fd , unsigned int cmd , unsigned long arg)
{
printk ("fd=%u, cmd=%u and arg=%lu \n ", fd, cmd, arg);
return original_call_ioctl(fd , cmd , arg);
}
Run Code Online (Sandbox Code Playgroud)
据我所知,fd是驱动程序文件的文件描述符,cmd定义了驱动程序,ioctl编号,操作类型和参数大小.但我对arg参数感到困惑,要么是指向内存的指针,要么只是大多数文档称之为立即值的指针.
通过使用此arg参数,如果unsigned long arg像上面给出的那样传递内存内容而不是指针,我该如何获取内存?
可能重复:
带有负值的无符号长整数
我编写了一个内核模块,它可以中断任何系统调用,打印其当前的user_id和传递给系统调用函数的输入参数.其中一个是sys_ioctl(),如下所示:
asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd,unsigned long arg);
Run Code Online (Sandbox Code Playgroud)
这意味着所有输入参数都是无符号的int数.
但是当我打印输入参数时,我得到以下输出:
fd=21, cmd=-1072143871 and arg=3202983648
fd=21, cmd=-1072143871 and arg=3202983648
fd=21, cmd=-1072143871 and arg=3202983648
----------
Run Code Online (Sandbox Code Playgroud)
这是我的函数定义:
asmlinkage long our_sys_ioctl(unsigned int fd , unsigned int cmd , unsigned long arg)
{
uid_t gtuid ;
gtuid = getuid_call();
printk ("our_sys_ioctl ---> uid = %d with fd=%i, cmd=%i and arg=%lu \n ", gtuid, fd, cmd, arg);
return original_call_ioctl(fd , cmd , arg);
}
Run Code Online (Sandbox Code Playgroud)
知道为什么cmd值是负数,这些值是什么意思?
c ×5
linux ×4
java ×3
linux-kernel ×3
android ×2
memory ×2
system-calls ×2
algorithm ×1
binary-tree ×1
call-graph ×1
debugging ×1
hadoop ×1
heap ×1
ioctl ×1
process ×1
regex ×1
smali ×1
split ×1
windows ×1